需求:遍历“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()