吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1039|回复: 3
收起左侧

[求助] python 去重怎么处理!

[复制链接]
506874511 发表于 2021-10-4 09:20
本帖最后由 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)  # 将两个文件放到集合里,过滤掉重复内容
好像这样就可以了
  
[Python] 纯文本查看 复制代码
#!/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:31
本帖最后由 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", ""))

请问,这样写的话,是不是也能实现?
beiying 发表于 2021-10-4 11:02
写规范点呗,就这样

[Python] 纯文本查看 复制代码
#!/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 [lines.replace('\n', '') for lines in file_object.readlines()]


def SaveFile(file_path, str_list):
    with open(file_path, "a+", encoding='utf-8') as file_object:
        file_object.writelines([_str+'\n' for _str in str_list])


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)
salge 发表于 2021-10-4 11:04
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表