利用Python实现PDF、Word文档转为TXT文档 您所在的位置:网站首页 怎么把word文档转为txt 利用Python实现PDF、Word文档转为TXT文档

利用Python实现PDF、Word文档转为TXT文档

2024-07-02 20:51| 来源: 网络整理| 查看: 265

        使用Python批量将PDF、Word(.docx)和Word(.doc)文件转换为TXT文件 1、PDF转TXT

        首先需要安装Python当中的PyMuPDF库。

pip install PyMuPDF

        将PDF文件保存在文件夹“C:\Users\merit\Desktop\测试文件”下,输出TXT文件同样保存在“C:\Users\merit\Desktop\测试文件”当中,具体调用代码如下:

import fitz import os # 指定PDF文件夹的路径 pdf_folder = r'C:\Users\merit\Desktop\测试文件' # 确保指定的文件夹存在 if not os.path.exists(pdf_folder): print("指定的文件夹不存在。") else: # 遍历PDF文件夹中的所有PDF文件 for pdf_filename in os.listdir(pdf_folder): if pdf_filename.endswith('.pdf'): pdf_path = os.path.join(pdf_folder, pdf_filename) # 打开PDF文件 pdf_document = fitz.open(pdf_path) # 获取PDF中的所有页面并将它们合并为一个字符串 pdf_text = "" for page_num in range(pdf_document.page_count): page = pdf_document.load_page(page_num) pdf_text += page.get_text() # 创建一个TXT文件并将PDF内容写入其中 txt_filename = os.path.splitext(pdf_filename)[0] + '.txt' txt_path = os.path.join(pdf_folder, txt_filename) with open(txt_path, 'w', encoding='utf-8') as txt_file: txt_file.write(pdf_text) pdf_document.close() # 重新打开TXT文件,将编码更改为UTF-8 with open(txt_path, 'r', encoding='utf-8') as txt_file: content = txt_file.read() with open(txt_path, 'w', encoding='utf-8') as txt_file: txt_file.write(content) print("PDF文件已成功转换为UTF-8编码的TXT文件并保留相同的文件名。") 2、Word(.docx)转TXT

        需要使用Python中的python-docx库,首先安装python-docx库。

pip install python-docx

         将Word(.docx)文件保存在文件夹“C:\Users\merit\Desktop\测试文件”下,输出TXT文件同样保存在“C:\Users\merit\Desktop\测试文件”当中,具体调用代码如下:

import os from docx import Document # 指定Word文档文件夹的路径 docx_folder = r'C:\Users\merit\Desktop\测试文件' # 确保指定的文件夹存在 if not os.path.exists(docx_folder): print("指定的文件夹不存在。") else: # 遍历Word文档文件夹中的所有Word文档 for docx_filename in os.listdir(docx_folder): if docx_filename.endswith('.docx'): docx_path = os.path.join(docx_folder, docx_filename) txt_filename = os.path.splitext(docx_filename)[0] + '.txt' txt_path = os.path.join(docx_folder, txt_filename) # 打开Word文档 doc = Document(docx_path) # 创建一个TXT文件并将Word文档内容写入其中 with open(txt_path, 'w', encoding='utf-8') as txt_file: for paragraph in doc.paragraphs: txt_file.write(paragraph.text + '\n') print("Word文档已成功转换为UTF-8编码的TXT文件。") 3、Word(.doc)转TXT

        在Windows系统中使用Python将.doc文件转换为.txt文件,可以使用pywin32库。对于包含非UTF-8字符的文本文件,尝试将编码强制更改为UTF-8时可能会导致解码错误。需要先确定原始文件的编码,然后进行相应的转换。使用 chardet 来检测文件的编码,并将其转换为UTF-8。

pip install pywin32 pip install chardet

        将Word(.doc)文件保存在文件夹“C:\Users\merit\Desktop\测试文件”下,输出TXT文件同样保存在“C:\Users\merit\Desktop\测试文件”当中,具体调用代码如下:

import os import win32com.client import chardet # 指定.doc文件夹的路径 doc_folder = r'C:\Users\merit\Desktop\测试文件' # 确保指定的文件夹存在 if not os.path.exists(doc_folder): print("指定的文件夹不存在。") else: # 遍历.doc文件夹中的所有.doc文件 for doc_filename in os.listdir(doc_folder): if doc_filename.endswith('.doc'): doc_path = os.path.join(doc_folder, doc_filename) txt_filename = os.path.splitext(doc_filename)[0] + '.txt' txt_path = os.path.join(doc_folder, txt_filename) # 使用pywin32库将.doc文件转换为.txt文件 word = win32com.client.Dispatch("Word.Application") doc = word.Documents.Open(doc_path) doc.SaveAs(txt_path, FileFormat=2) # FileFormat 2 表示.txt格式 doc.Close() word.Quit() # 使用chardet库检测TXT文件的编码 with open(txt_path, 'rb') as txt_file: raw_data = txt_file.read() result = chardet.detect(raw_data) encoding = result['encoding'] if encoding != 'utf-8': # 如果编码不是UTF-8,转换为UTF-8编码 with open(txt_path, 'r', encoding=encoding, errors='ignore') as txt_file: content = txt_file.read() with open(txt_path, 'w', encoding='utf-8') as txt_file: txt_file.write(content) print(".doc文件已成功转换为UTF-8编码的.txt文件。")



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有