我正在编写一个解析器,其中两行被比较在一起('mainline'可以这么说,行之前它)。如果两条线都匹配,主线将被丢弃。我只希望这发生在仅包含换行符或回车换行符的行上。所以我有这样的代码Python:在if语句中使用'or'会导致代码执行,即使条件不被满足
lastline = 0
pointer = 0
for lines in fileLines:
mainline = fileLines[pointer]
if lastline != 0:
print "Last Line: ",lastline
print "This Line: ",mainline
if lastline == '\n' or '\r\n':
if mainline == '\n' or '\r\n':
print "Would drop"
lastline = mainline
pointer = pointer + 1
每一个时间它会通过for循环会打印出“会下降”,当字符串肯定不是任何这些四个选项。我想我正在做一些完全倒退的事情,但我正在给自己教python,所以当我遇到错误的时候,我没有任何人告诉我。感谢上帝,你们在这里。任何想法为什么发生这种情况?
感谢您的所有帮助,它的工作非常完美。谢谢!!!
下面的答案已经解决了代码中的错误。但重要的是要注意,您不必为不同的行结尾明确编码。请参阅http://www.python.org/dev/peps/pep-0278/。 – 2012-03-09 22:33:32