从两个不同的文件中读取行,如果找到匹配项,则打印行号[已编辑]

2024-10-01 09:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两份档案。我想读取文件1中的每一行,并检查它是否与文件2中的任何一行匹配。我希望对file1中的每一行重复此操作,并打印file1的行号,该行号在file2中找到了匹配项。到目前为止我有这个。它适用于每个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()

Tags: 文件intxtforcloseopenfile1num
1条回答
网友
1楼 · 发布于 2024-10-01 09:29:29

首先,第8行出现语法错误,请将该行替换为print(num)。 关于你的问题,我没有太多的信息,澄清一下可能是个好主意,但我怀疑你读到的行的末尾有一个结束行字符"\n"。你知道吗

要去掉这个字符,可以使用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()

相关问题 更多 >