📅  最后修改于: 2023-12-03 15:35:23.568000             🧑  作者: Mango
如果你需要处理大量文本文件,并且需要消除其中的重复行,那么这个Python程序可以帮你一把。它会读入任何文本文件,并输出一个新文件,其中重复的行已被删除。
该程序主要使用两个Python模块:os
和hashlib
。其中:
os
模块使我们能够在程序中访问操作系统的文件系统hashlib
模块使我们能够通过读入每行文本的单向哈希,快速比较文本行,以确定是否重复程序的设计思路如下:
os
模块让用户选择要读入的文本文件并指定输出文件名seen
集合中seen
集合中的行写入输出文件import os
import hashlib
def remove_duplicates(infile, outfile):
# 定义set()用于存储已经遇到过的行哈希值
seen = set()
# 打开输入文件和输出文件
with open(infile, 'r') as f_input, open(outfile, 'w') as f_output:
# 遍历输入文件
for line in f_input:
# 计算行的SHA-1哈希值
line_hash = hashlib.sha1(line.encode()).hexdigest()
# 如果这个哈希值之前没有出现过
if line_hash not in seen:
# 将当前的哈希值加入到seen集合中
seen.add(line_hash)
# 写入输出文件
f_output.write(line)
# 关闭文件
f_input.close()
f_output.close()
if __name__ == '__main__':
infile = input('请输入要读取的文件名:')
outfile = input('请输入要输出的文件名:')
remove_duplicates(infile, outfile)
python <filename.py>
执行程序返回的Markdown格式和代码片段为:
如果你需要处理大量文本文件,并且需要消除其中的重复行,那么这个Python程序可以帮你一把。它会读入任何文本文件,并输出一个新文件,其中重复的行已被删除。
该程序主要使用两个Python模块:os
和hashlib
。其中:
os
模块使我们能够在程序中访问操作系统的文件系统hashlib
模块使我们能够通过读入每行文本的单向哈希,快速比较文本行,以确定是否重复程序的设计思路如下:
os
模块让用户选择要读入的文本文件并指定输出文件名seen
集合中seen
集合中的行写入输出文件import os
import hashlib
def remove_duplicates(infile, outfile):
# 定义set()用于存储已经遇到过的行哈希值
seen = set()
# 打开输入文件和输出文件
with open(infile, 'r') as f_input, open(outfile, 'w') as f_output:
# 遍历输入文件
for line in f_input:
# 计算行的SHA-1哈希值
line_hash = hashlib.sha1(line.encode()).hexdigest()
# 如果这个哈希值之前没有出现过
if line_hash not in seen:
# 将当前的哈希值加入到seen集合中
seen.add(line_hash)
# 写入输出文件
f_output.write(line)
# 关闭文件
f_input.close()
f_output.close()
if __name__ == '__main__':
infile = input('请输入要读取的文件名:')
outfile = input('请输入要输出的文件名:')
remove_duplicates(infile, outfile)
python <filename.py>
执行程序