繁体   English   中英

使用python删除一个文件中存在于另一个文件中的行

[英]Removing lines in one file that are present in another file using python

我坚持使用python中存在另一个文件的行删除存在文件的行。 我使用两个 for 循环进行字符串匹配,但它在循环的第二次迭代中给出了重复的行。 有没有其他方法可以做到。 谢谢

with open('results.csv','r+') as source:
    lines = source.readlines()

f = open('results_comments.csv','r')
line = f.readlines()
for l in line:
    for L in lines:
        if L!=l:
            source.write(L)
f.close()

你可以试试:

with open('results.csv','r') as source:
    lines_src = source.readlines()

with open('results_comments.csv','r') as f:
    lines_f = f.readlines()

destination = open("destination.csv","w")
for data in lines_src:
    if data not in lines_f:
        destination.write(data)

destination.close()

您的变量名称令人困惑,所以我重命名了几个。 我认为你需要打开一个新文件来写入结果(至少这会让你更清楚你想要做什么)。 如果您想要相同的名称,您可以在之后重命名文件。

with open('results.csv','r+') as source:
    filter_lines = source.readlines()

with open('results_comments.csv','r') as f:
    lines = f.readlines()

with open('target.csv', 'w') as target:
    for line in lines:
        if line not in filter_lines:
            target.write(line)
with open('results.csv','r+') as source:
     lines = source.readlines()

f = open('results_comments.csv','r')
line = f.readlines()
line = filter(lambda x : x not in lines, line)
f.write('\n'.join(line))
f.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM