打印文本文件中的重复行,然后删除除一个副本之外的所有行?

2024-04-27 04:58:51 发布

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

我有一个文本文件,其数据行如下:

data123||data456
data146||data269
data123||data456
data697||data983
data123||data456

我想先打印重复的行,这样我就可以记录下这些行是什么。然后我想创建一个新的文本文件,在这个文件中我删除了原始文本文件中那些重复行的所有副本。在

到目前为止,我有以下代码,但它似乎给了我重复的单个“data”###################。在

^{pr2}$

Tags: 文件数据代码data记录副本文本文件pr2
2条回答

您可以使用集合:

s=set()
for line in open("file.txt"):
    if line in s:
        print line
    else:
        s.add(line)

然后重写文件:

^{pr2}$

印刷生产线并不是一门科学,所以我专注于在保存订单的同时消除重复:

from collections import OrderedDict

data = """data123||data456
data146||data269
data123||data456
data697||data983
data123||data456"""

uniq = OrderedDict((row, None) for row in data.splitlines()).keys()

uniq中的结果是没有重复的行的列表:

^{pr2}$

相关问题 更多 >