我不需要替代解决方案。
我正在使用Python 2.5.4并想知道为什么会发生这种情况。
我为makefile编写源解析器。
ff = open("module.mk")
f = ff.readlines()
ff.close()
for i in f:
if ".o \\" in i[-5:]:
print "Is %s for str: %s" %(i.endswith('.o \\'), i)
我得到了:
Is False for str: bitmap.o \
每次检查都是如此。
您可以从github
获取module.mk答案 0 :(得分:1)
使用.readlines()
时,它会在行中包含换行符,在这种情况下为CR-LF。
在检查.endswith()
之前,您需要删除该换行符:
with open("module.mk") as data:
for i in data.readlines():
if ".o \\" in i[-5:]:
print "Is %s for str: %s" %(i.strip().endswith('.o \\'), i)
注意:此处不需要.readlines()
来电,我只是将其保留,以便行为与OP的代码保持一致。