写一个python脚本,把文件夹及其子文件夹下的所有txt文件合并成一个txt文件并对文件内容去重
时间: 2024-05-09 15:19:31 浏览: 10
以下是一个实现该功能的Python脚本:
```python
import os
# 定义函数用于获取目录中所有txt文件的路径
def get_txt_files(dir_path):
txt_files = []
for root, dirs, files in os.walk(dir_path):
for file in files:
if file.endswith(".txt"):
file_path = os.path.join(root, file)
txt_files.append(file_path)
return txt_files
# 定义函数用于将多个txt文件合并成一个文件并去重
def combine_txt_files(txt_files, output_file_path):
content_set = set() # 用于去重的集合
with open(output_file_path, 'w', encoding='utf-8') as f:
for file_path in txt_files:
with open(file_path, 'r', encoding='utf-8') as txt_file:
for line in txt_file:
if line.strip() not in content_set: # 如果该行内容不在集合中,则写入文件并将其添加到集合中
f.write(line)
content_set.add(line.strip())
# 测试
dir_path = "/path/to/txt/files/directory"
output_file_path = "/path/to/output/file.txt"
txt_files = get_txt_files(dir_path)
combine_txt_files(txt_files, output_file_path)
print("合并完成!")
```
在使用该脚本时,需要将`/path/to/txt/files/directory`和`/path/to/output/file.txt`替换为实际的文件夹路径和输出文件路径。运行后,该脚本会将指定文件夹及其子文件夹下的所有txt文件合并成一个txt文件,并对文件内容去重,最终输出到指定的输出文件中。