python实现批量pdf转txt和word

文章目录

背景需求

已经获取到了大量的pdf在download文件夹中,但是我需要的是txt文件和word文件~

环境安装

复制代码
pip install pdf2docx pdfminer.six

完整代码

复制代码
# pip install pdf2docx pdfminer.six

import os
from pdf2docx import Converter
from pdfminer.high_level import extract_text
# 忽略警告
import warnings
warnings.filterwarnings("ignore", category=UserWarning, module="pdf2docx")

# pdf转txt
def pdf_to_txt(pdf_path, txt_path):
    text = extract_text(pdf_path)
    with open(txt_path, 'w', encoding='utf-8') as f:
        f.write(text)

# pdf转word
def pdf_to_docx(pdf_path, docx_path):
    cv = Converter(pdf_path)
    cv.convert(docx_path, start=0, end=None)
    cv.close()

# 分批转换,文件格式检测
def batch_convert(download_folder, data_folder, output_format='txt'):
    # 确保输出文件夹存在
    if not os.path.exists(data_folder):
        os.makedirs(data_folder)

    # 遍历download文件夹中的所有PDF文件
    for filename in os.listdir(download_folder):
        if filename.endswith('.pdf'):
            pdf_path = os.path.join(download_folder, filename)

            if output_format == 'txt':
                txt_filename = os.path.splitext(filename)[0] + '.txt'
                txt_path = os.path.join(data_folder, txt_filename)
                pdf_to_txt(pdf_path, txt_path)

            elif output_format == 'docx':
                docx_filename = os.path.splitext(filename)[0] + '.docx'
                docx_path = os.path.join(data_folder, docx_filename)
                pdf_to_docx(pdf_path, docx_path)


# 转换txt
batch_convert('download', 'data_txt', output_format='txt')
# 转换word文件
batch_convert('download', 'data_docx', output_format='docx')

效果

相关推荐
IVEN_2 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang4 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮4 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling4 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮7 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽7 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健1 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽1 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers