我是python noob,我正在尝试比较两个文件中各行之间的值,并输出“行名”,如果第二行中有该行,则输出1,如果第二个文件中缺少该行,则输出0.第一次迭代返回1,因为该行在第二个文件中,但对于> 1,000行,无论它们是否在第二个列表中,它们都返回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('
')
count = 0
for line1 in f2:
if name == line1.strip('
'):
count += 1
print (str(name) + '' + str(1))
o1.write(str(name) + '' + str(1) + '
')
if count == 0:
print (str(name) + '' + str(0))
o1.write(str(name) + '' + str(0) + '
')
f1.close()
f2.close()
o1.close()
Any help is very much appreciated!
进行一些更改后,这就是我所拥有的,它仅返回“ 1”
f1 = open(file1, 'r') #opens files for reading
f2 = open(file2, 'r')
o1 = open((name + '1.txt'), 'w')
f2s = {line.strip('
') for line in f2}
for line in f1:
line = line.strip('
')
count = 0
if line in f2s:
count += 1
print (str(line) + '' + str(1))
o1.write(str(line) + '' + str(1) + '
')
if count == 0:
print (str(line) + '' + str(0))
o1.write(str(line) + '' + str(0) + '
')
尴尬的是,我两次打开相同的文件.最佳新秀.