运行以下代码将文本文件的列中的值与给定数字进行比较,在本例中为 440
with open('test.txt', 'a+') as input:
for line in input:
columns = line.split(" ")
print columns[5] #test
if columns[5] == '440':
print 'match'
test.txt 只是:
0 0 0 0 0 1
0 0 0 0 0 440
0 0 0 0 0 1
0 0 0 0 0 440
0 0 0 0 0 1
0 0 0 0 0 1
print columns[5] 位从 txt 文件中打印出正确的值,但即使它匹配 440,for 循环中的 if 也不起作用
谢谢你的帮助
最佳答案
因为你的 440 是最后一行,column[5] == '440\n'
您需要在比较之前去除值。
if columns[5].strip() == '440':
或者先剥离它:
columns = line.strip().split(" ")
或使用常规拆分,它将在所有空白处拆分:
columns = line.split()
或者做一个实际的数字比较
if int(columns[5]) == 440:
关于python - 如果在 for 循环中不工作,即使条件满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543881/