python遍历制定目录下后缀为txt的文件并读取文件内容,并把内容新增添加到另一个目录下的keyrand.txt中并排重(第三版:批量转移)

次阅读

需求:遍历“D:/python/text/txt数据转移到另一个目录下的txt文件”目录下后缀为.txt的文件,读取文件内容,并将内容添加到“D:/python/text/txt数据转移到另一个目录下的txt文件/转移后/keyrand.txt”,并排除重复的内容,第二版的脚本增加修改为把目录下的后缀为.txt的文件批量转移到多个不同文件夹下的keyrand.txt中

import os

class TextFileMover:
    def __init__(self, source_dir, target_files):
        self.source_dir = source_dir
        self.target_files = target_files

    def move_text_files(self):
        # 遍历目标文件列表,每个目标文件都有独立的集合来存储新内容以排重
        for target_file in self.target_files:
            content_set = set()  # 创建一个空集合来存储新文件内容,以排重

            # 打开目标文件并读取旧内容,将其添加到集合
            if os.path.exists(target_file):
                with open(target_file, "r", encoding="utf-8") as file:
                    for line in file:
                        line = line.strip()
                        if line:
                            content_set.add(line)

            # 遍历源目录下的所有.txt文件,将新内容添加到集合
            for root, dirs, files in os.walk(self.source_dir):
                for file in files:
                    if file.endswith(".txt"):
                        file_path = os.path.join(root, file)
                        with open(file_path, "r", encoding="utf-8") as source_file:
                            content = source_file.read()
                            content_set.update(content.splitlines())

            # 打开目标文件,将新内容写入并排重
            with open(target_file, "w", encoding="utf-8") as file:
                for line in content_set:
                    file.write(line + "\n")

            print(f"新文件内容已成功添加到目标文件 {target_file} 并排重,同时去除空行。")

if __name__ == "__main__":
    source_dir = "D:/python/text/txt数据转移到另一个目录下的txt文件"
    target_files = [
        "D:/python/text/txt数据转移到另一个目录下的txt文件/转移后/keyrand.txt",
        "D:/python/text/txt数据转移到另一个目录下的txt文件/转移后/1/keyrand.txt",
        "D:/python/text/txt数据转移到另一个目录下的txt文件/转移后/2/keyrand.txt"
    ]

    text_mover = TextFileMover(source_dir, target_files)
    text_mover.move_text_files()


相关文章:

版权声明:由yongbin2023-10-25 23:33:30发表,共计2219字。
新手QQ群: 703975885,欢迎进群讨论 鲁班编程网