找回密码
 立即注册
搜索
热搜: Excel discuz
查看: 944|回复: 0

[项目代码] deepseek写的word转txt的代码

[复制链接]

496

主题

7万

元宝

77万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
777443
发表于 2025-3-24 15:59:46 | 显示全部楼层 |阅读模式
  1. import os
  2. from docx import Document
  3. import win32com.client  # 仅用于处理.doc文件(需Windows环境)
  4. import pythoncom
  5. import glob


  6. def docx_to_txt(docx_path, txt_path):
  7.     """将.docx文件转换为.txt文件"""
  8.     try:
  9.         doc = Document(docx_path)
  10.         text = '\n'.join([para.text for para in doc.paragraphs])
  11.         with open(txt_path, 'w', encoding='utf-8') as f:
  12.             f.write(text)
  13.         return True
  14.     except Exception as e:
  15.         print(f"处理 {docx_path} 时出错: {str(e)}")
  16.         return False


  17. def doc_to_txt(doc_path, txt_path):
  18.     """将.doc文件转换为.txt文件(需安装pywin32且只能在Windows运行)"""
  19.     try:
  20.         pythoncom.CoInitialize()  # 初始化COM库
  21.         word = win32com.client.Dispatch("Word.Application")
  22.         doc = word.Documents.Open(doc_path)
  23.         doc.SaveAs(txt_path, FileFormat=2)  # FileFormat=2表示保存为txt
  24.         doc.Close()
  25.         word.Quit()
  26.         pythoncom.CoUninitialize()
  27.         return True
  28.     except Exception as e:
  29.         print(f"处理 {doc_path} 时出错: {str(e)}")
  30.         return False


  31. def convert_folder(input_folder, output_folder):
  32.     """转换指定文件夹内的所有Word文档"""
  33.     # 确保输出目录存在
  34.     os.makedirs(output_folder, exist_ok=True)

  35.     # 处理.docx文件
  36.     for docx_file in glob.glob(os.path.join(input_folder, "*.docx")):
  37.         base_name = os.path.basename(docx_file)[:-5]
  38.         txt_file = os.path.join(output_folder, f"{base_name}.txt")
  39.         if docx_to_txt(docx_file, txt_file):
  40.             print(f"转换成功: {docx_file} -> {txt_file}")

  41.     # 处理.doc文件(仅在Windows环境生效)
  42.     if os.name == 'nt':
  43.         for doc_file in glob.glob(os.path.join(input_folder, "*.doc")):
  44.             base_name = os.path.basename(doc_file)[:-4]
  45.             txt_file = os.path.join(output_folder, f"{base_name}.txt")
  46.             if doc_to_txt(doc_file, txt_file):
  47.                 print(f"转换成功: {doc_file} -> {txt_file}")


  48. if __name__ == "__main__":
  49.     input_dir = r"C:\Users\Administrator\Documents\001"  # 输入文件夹路径(存放Word文档)
  50.     output_dir = "output_txt"  # 输出文件夹路径(存放TXT文件)

  51.     convert_folder(input_dir, output_dir)

  52.     # 如果存在不支持的.doc文件且不在Windows环境,给出提示
  53.     if glob.glob(os.path.join(input_dir, "*.doc")) and os.name != 'nt':
  54.         print("\n发现.doc文件,请注意:")
  55.         print("1. .doc转换需要Windows操作系统并安装Microsoft Word")
  56.         print("2. 需要安装pywin32库:pip install pywin32")
  57.         print("3. 非Windows用户建议手动将.doc文件另存为.docx格式")
复制代码

需要安装两个库
python-docx
pywin32

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五花八门论坛 ( 豫ICP备15031300号-3 )

GMT+8, 2025-5-9 19:53 , Processed in 0.062634 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表