运行以下代码以将文本文件的列中的值与给定数字进行比较,在本例中为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'
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
打印列[5]位从txt文件打印出正确的值,但即使它匹配440,for循环中的if也不起作用
感谢您的任何帮助
因为你的440是最后的东西, column[5] == '440\n'
您需要在比较之前去除值.
if columns[5].strip() == '440':
Run Code Online (Sandbox Code Playgroud)
或首先剥离它:
columns = line.strip().split(" ")
Run Code Online (Sandbox Code Playgroud)
或使用一般拆分,它将在所有空格上拆分:
columns = line.split()
Run Code Online (Sandbox Code Playgroud)
或者做一个实际的数字比较
if int(columns[5]) == 440:
Run Code Online (Sandbox Code Playgroud)