两个文件去重并写入到第三个文件
本帖最后由 常建瑞 于 2019-12-17 11:10 编辑1.功能
1.txt和2.txt去重后写入去重后.txt
2.工作目录
D盘根目录
3.解释由于使用了python set()函数,所以输出结果会随机乱序
4.有用则用,无用勿喷
5.关于大家反馈的闪退,注意文件名都必须存在于指定路径,文件必须utf-8(不限制对比的是文字数字符号),模块都是打包好的,理论不存在闪退
https://www.lanzouj.com/i81qd7a
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
a = time.time()
print("开始检测,请耐心等待,文件较大需要时间越长,完毕本界面会跳出提示")
def file_qc():
str1 = []
file_1 = open("d:/1.txt","r",encoding="utf-8")
for line in file_1.readlines():
str1.append(line.replace("\n",""))
str2 = []
file_2 = open("d:/2.txt", "r", encoding="utf-8")
for line in file_2.readlines():
str2.append(line.replace("\n", ""))
str_dump = []
for line in str1:
if line in str2:
str_dump.append(line) #将两个文件重复的内容取出来
str_all = set(str1 + str2) #将两个文件放到集合里,过滤掉重复内容
for i in str_dump:
if i in str_all:
str_all.remove(i) #去掉重复的文件
print("正在写去重后的结果,请稍等")
for str in str_all: #去重后的结果写入文件
with open("d:/去重后.txt","a+",encoding="utf-8") as f:
f.write(str + "\n")
if __name__=="__main__":
file_qc()
print('耗时(秒):%f' % (time.time() - a))
print("30秒后自动关闭该界面,你也可以现在手动关闭")
time.sleep(30) 流月汐志 发表于 2019-12-16 14:20
cat file01.txt >> file02.txt && sort file02.txt | uniq > file03.txt
非常好也非常快,不过不是每个人都在用linux 立竿见影 发表于 2019-12-16 13:44
我也是WIN10 64位专业版系统,打开秒退。
闪退是带去重文件不符合或者位置不对 提示无法启动此程序, fs6842 发表于 2019-12-16 11:48
提示无法启动此程序,
我的win10 64 理论都可以的嘛 常建瑞 发表于 2019-12-16 13:13
我的win10 64 理论都可以的嘛
我也是WIN10 64位专业版系统,打开秒退。 WIN7-64也是打开秒退。 cat file01.txt >> file02.txt && sort file02.txt | uniq > file03.txt 有思路有方法,非常不错的工具,感谢楼主分享。 92monkey 发表于 2019-12-16 13:51
WIN7-64也是打开秒退。
重新仔细看一次说明
页:
[1]
2