灰儿 发表于 前天 08:50

使用豆包生成txt文档合并工具

使用豆包生成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()
   


页: [1]
查看完整版本: 使用豆包生成txt文档合并工具