python - 如果在 for 循环中不工作,即使条件满足

标签 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

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/

相关文章:

python - 在python3.2中等待一段时间再执行下一段代码

python - 在递归中分配局部变量

python - spaCy分类器: 'unicode' object has no attribute 'to_array'

python - PANDAS:如何利用向量运算来查找 groupby 对象中的最大值

python - 使用 Python Base64 压缩 GAE Blob 图像?

python - python中的计算静态属性

python - 如何使用 pycairo 表示点

python - 如何在 Python 代码中找到未使用的函数?

python - 有没有办法在 python 3 上安装 MySQL-python?

python - 如何否定 Pandas 替换的正则表达式