【问题标题】:Removal of duplicate lines from a text file using python [duplicate]使用python从文本文件中删除重复行[重复]
【发布时间】:2015-04-15 05:50:22
【问题描述】:

之前我编写了从多个文件中提取特定字符串的代码,结果存储在单独的文件中。现在这个文件有重复的结果,我需要删除。

import glob
import re
import os.path
path=r"H:\sample"
file_array=glob.glob(os.path.join(path,'*.txt'))
with open("aiq_hits.txt","w") as out_file;
    for input_filename in file_array:
        with open(input_filename) as in_file:
            for line in in_file:
                match=re.findall(r"""(?<=')[^']*\.aiq(?=')|(?<=")[^"]*\.aiq(?=")""")                  
                for item in match:
                    out_file.write("%s\n" %item)
out_file.close()

这个 out_file 有重复的结果,我需要删除,结果应该是同一个文件

【问题讨论】:

  • 显示一些代码。有什么问题?
  • 之前有人提出并回答了同样的问题:stackoverflow.com/questions/1215208/… 您可以在发布问题之前尝试搜索您想要的内容
  • 我已经尝试了这些代码,但它们不起作用

标签: python duplicates


【解决方案1】:
  1. 加载输入文件。
  2. 逐行读取输入文件。 readlines 将返回文件内容中的行列表。
  3. 创建一个新列表。
  4. 迭代 lines 中的每一行。
  5. 去除line中的空白。
  6. 检查该行是否存在于new_lines
  7. 如果不是,则在new_lines 列表中追加 line
  8. 写入 new_lines 到文件中。

演示:

input_file = "input.txt"
with open(input_file, "r") as fp:
    lines = fp.readlines()
    new_lines = []
    for line in lines:
        #- Strip white spaces
        line = line.strip()
        if line not in new_lines:
            new_lines.append(line)

output_file = "output.txt"
with open(output_file, "w") as fp:
    fp.write("\n".join(new_lines))

添加此文本以通过验证,如果可以请删除

【讨论】:

  • :感谢您的建议,但我只需要在输入文件中输出
  • 结果也在一条水平线上
  • 1:在写入文件事件期间使用输入文件名。即with open(input_file, "wb") as fp: 和 2. 没有得到?行在新行上..您可以在stackoverflow上与我们一起编写代码或给我发电子邮件 vivekbsable@gmail.com
猜你喜欢
  • 2017-03-12
  • 2012-12-23
  • 2010-11-17
  • 2021-04-09
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 2018-01-31
相关资源
最近更新 更多