如果即使条件满足,for循环也不起作用

时间:2012-11-24 17:51:04

标签: python

运行以下代码,将文本文件列中的值与给定数字进行比较,在本例中为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

打印列[5]位从txt文件中打印出正确的值,但即使它与440匹配,for循环中的if也不起作用

感谢您的帮助

1 个答案:

答案 0 :(得分:5)

由于你的440是最后一件事,column[5] == '440\n'

您需要在比较之前去除值。

if columns[5].strip() == '440':

或首先剥离它:

columns = line.strip().split(" ")

或使用常规拆分,它将在所有空格上拆分:

columns = line.split()

或进行实际数字比较

if int(columns[5]) == 440: