python - 使用 python 从文本文件中删除两个重复项(原始和重复项)

标签 python python-3.x string file filtering

我尝试删除两个重复项,例如:

STANGHOLMEN_TA02_GT11
STANGHOLMEN_TA02_GT41
STANGHOLMEN_TA02_GT81
STANGHOLMEN_TA02_GT11
STANGHOLMEN_TA02_GT81

结果

STANGHOLMEN_TA02_GT41

我尝试过这个脚本

lines_seen = set() 
with open(example.txt, "w") as output_file:
    for each_line in open(example2.txt, "r"):
        if each_line not in lines_seen: 
            output_file.write(each_line)
            lines_seen.add(each_line)

但不幸的是,它没有按照我想要的方式工作,它会丢失线条并且不会删除线条。原始文件的行与行之间不时有空格

最佳答案

您需要执行 2 遍才能正常工作。因为通过 1 次,您将不知道当前行是否会在以后重复。你应该尝试这样的事情:

# count each line occurances
lines_count = {}
for each_line in open('example2.txt', "r"):
    lines_count[each_line] = lines_count.get(each_line, 0) + 1

# write only the lines that are not repeated
with open('example.txt', "w") as output_file:
    for each_line, count in lines_count.items():
        if count == 1:
            output_file.write(each_line)

关于python - 使用 python 从文本文件中删除两个重复项(原始和重复项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65542565/

相关文章:

python - 使用 pandas 使用 bool 方法选择列数据集

python - 为什么python中的递归这么慢?

python - 如何在 amazon pinpoint 中创建端点和发送消息

python - 获取父节点?

Python 日期时间奇怪的行为

C++ 将地址列表存储到数组以解析原始非终止文本?

Python 追加列表并停止它

python - 集差与集减法

java - 获取 Group 与 Asterisk 的匹配项?

c++ - 将指针整数 (int**) 转换为 c 中的字符串