python 去重怎么处理!
本帖最后由 506874511 于 2021-10-4 09:23 编辑以下代码是https://www.52pojie.cn/forum.php ... %C8%A5%D6%D8&page=1这个帖子的。
1.txt 里面的是123 456 789
2.txt 里面的是123 456 789 455 456
我怎么执行下面代码导出的新txt文件只有 455 456 这两个值。
我好像自己解决了。
str_all = set(str1 + str2)# 将两个文件放到集合里,过滤掉重复内容
改成
str_all = set(str2)# 将两个文件放到集合里,过滤掉重复内容
好像这样就可以了
#!/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("10秒后自动关闭该界面,你也可以现在手动关闭")
time.sleep(10)
本帖最后由 Xingyemao 于 2021-10-4 10:33 编辑
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", ""))
file_2 = open("d:/2.txt", "r", encoding="utf-8")
for line in file_2.readlines():
if line not in str1:
str1.append(line.replace("\n", ""))
请问,这样写的话,是不是也能实现? 写规范点呗,就这样
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
def ReadFile(file_path):
with open(file_path, 'r', encoding='utf-8') as file_object:
return
def SaveFile(file_path, str_list):
with open(file_path, "a+", encoding='utf-8') as file_object:
file_object.writelines()
def TextDeDuplication(file_path_1, file_path_2, save_path):
SaveFile(save_path, set(ReadFile(file_path_1) + ReadFile(file_path_2)))
if __name__ == "__main__":
start_time = time.time()
print('开始检测,请耐心等待,文件较大需要时间越长,完毕本界面会跳出提示')
print('正在写去重后的结果,请稍等')
TextDeDuplication('1.txt', '2.txt', '3.txt')
print(f'耗时(秒):{time.time() - start_time}')
print('10秒后自动关闭该界面,你也可以现在手动关闭')
time.sleep(10)
页:
[1]