使用豆包生成txt文档合并工具
提示词:
帮我生成一个txt文档合并工具,功能要求如下:
1.使用python语言;
2.将当前目录下的所有txt格式的文档合并成一个txt文档,并在每个文档内容之前插入分隔符和原文件名;
3.要能处理不同编码的txt文件,如utf8、ansi编码等。
依赖库:
pip install chardet
代码:
- import os
- import chardet
- def merge_txt_files():
- # 定义分隔符
- separator = "=" * 80
- # 获取当前目录
- current_directory = os.getcwd()
- # 初始化一个空列表来存储所有 txt 文件的路径
- txt_files = []
- # 遍历当前目录下的所有文件
- for filename in os.listdir(current_directory):
- if filename.endswith('.txt'):
- txt_files.append(os.path.join(current_directory, filename))
- # 按文件名排序
- txt_files.sort()
- # 打开一个新的文件用于写入合并后的内容
- with open('merged.txt', 'w', encoding='utf-8') as outfile:
- for txt_file in txt_files:
- # 获取文件名
- base_name = os.path.basename(txt_file)
- # 写入分隔符和文件名
- outfile.write(f"{separator}\n")
- outfile.write(f"文件名: {base_name}\n")
- outfile.write(f"{separator}\n")
- try:
- # 以二进制模式打开文件,检测编码
- with open(txt_file, 'rb') as raw_file:
- raw_data = raw_file.read()
- result = chardet.detect(raw_data)
- encoding = result['encoding']
- # 以检测到的编码打开文件并读取内容
- with open(txt_file, 'r', encoding=encoding) as infile:
- content = infile.read()
- # 写入当前文件的内容
- outfile.write(content)
- # 写入换行符以分隔不同文件的内容
- outfile.write('\n')
- except Exception as e:
- print(f"读取文件 {txt_file} 时出错: {e}")
- if __name__ == "__main__":
- merge_txt_files()
-
复制代码
|
|