我有两个文件。我想从file1读取每一行,并检查它是否与file2中的任何行匹配。我希望在file1中为每一行重复此操作,并打印在file2中找到匹配的file1的行号。到目前为止,我有这个。它适用于每个4-5行的测试文件,但是当处理超过60k行的大文件时,我得到一个空白输出
num=0
f1 = open('pdataf.txt', 'r')
f2 = open('splitc.txt', 'r')
fo = open('op.txt', 'w')
for line1 in f1:
for line2 in f2:
num=num+1
if line1==line2:
nummy=str(num)
fo.write(nummy)
fo.write('\n')
break
continue
f1.close()
f2.close()
答案 0 :(得分:0)
首先,第8行有语法错误,将行替换为print(num)
。
我没有关于你的问题的很多信息,澄清可能是一个好主意,但我怀疑发生的是你在你阅读的行的末尾有一个结束行字符"\n"
。 / p>
要摆脱这个角色,您可以使用this topic中讨论的rstrip()
方法。
所以,我建议用以下代码替换你的代码:
num=0
f1 = open('s.txt', 'r')
f2 = open('p.txt', 'r')
for line1 in f1:
line1 = line1.rstrip()
for line2 in f2:
line2 = line2.rstrip()
if line1==line2:
num=num+1
print(num)
f1.close()
f2.close()