我是一个pythonnoob,我试图比较两个文件中的行之间的值,如果行在第二个文件中,则输出“line name”,然后输出1;如果第二个文件中缺少该行,则输出0。第一次迭代返回1,因为该行在第二个文件中,但是对于剩余的>1000行,它们都返回一个0,而不管它们是否在第二个列表中。似乎第二个“for循环”只在第一次迭代中执行。你知道为什么吗?这是我的代码:import sys
file1 = sys.argv[1]
file2 = sys.argv[2]
name = str(file2)
f1 = open(file1, 'r')
f2 = open(file1, 'r')
o1 = open((name + '1.txt'), 'w')
for line in f1:
name = line.strip('\r\n')
count = 0
for line1 in f2:
if name == line1.strip('\r\n'):
count += 1
print (str(name) + '\t' + str(1))
o1.write(str(name) + '\t' + str(1) + '\r\n')
if count == 0:
print (str(name) + '\t' + str(0))
o1.write(str(name) + '\t' + str(0) + '\r\n')
f1.close()
f2.close()
o1.close()
Any help is very much appreciated!
经过一些更改后,这就是我所拥有的,它只返回'1s'
^{pr2}$
尴尬的是,我打开同一个文件两次。菜鸟。在