当前位置: 首页 > news >正文

python实现批量pdf转txt和word

文章目录

    • 背景需求
    • 环境安装
    • 完整代码
    • 效果

背景需求

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

环境安装

pip install pdf2docx pdfminer.six

完整代码

# pip install pdf2docx pdfminer.siximport 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')

效果

在这里插入图片描述

http://www.lryc.cn/news/206791.html

相关文章:

  • c++ 并发与多线程(12)线程安全的单例模式-2
  • 银河麒麟v10x86或者arm离线安装服务
  • 【Ansible自动化运维工具 1】Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)
  • Telegram 引入了国产小程序容器技术
  • Capture One Pro 23图像处理工具「Mac」
  • rust OJ实战
  • 聊聊KafkaListener的实现机制
  • Golang洗牌算法(Golang乱序算法)
  • SpringBoot 源码分析(三) 监听器分析以及属性文件加载分析
  • 记录nvm use node.js版本失败,出现报错: exit status 1: ��û���㹻��Ȩ��ִ�д˲�����
  • 【蓝牙协议】简介:蓝牙芯片、蓝牙协议架构
  • 【深度学习】
  • centos启动tomcat 并指定jdk 版本
  • day37(事件轮询机制 ajaxGet执行步骤与案例(五个步骤) ajax属性 PHP返回JSON对象(两种))
  • Flume基本使用--mysql数据输出
  • MySQL——EXPLAIN用法详解
  • 69 划分字母区间
  • 文件上传漏洞(1), 文件上传绕过原理
  • 【ARM 嵌入式 C 入门及渐进 10 -- 冒泡排序 选择排序 插入排序 快速排序 归并排序 堆排序 比较介绍】
  • 虹科 | 解决方案 | 汽车示波器 学校教学方案
  • 广播和组播(多播)
  • 【Linux】gdb调试
  • MySQL创建函数及其使用
  • 大数据-Storm流式框架(四)---storm容错机制
  • SpringBoot项目把Mysql从5.7升级到8.0
  • RK3568-适配at24c04模块
  • Banana Pi BPI-W3 ArmSoM-W3之RK3588-MIPI-DSI屏幕调试笔记
  • Git的远程仓库
  • Linux虚拟网络设备—Veth Pair
  • Parcelable protocol requires the CREATOR object to be static on class com.test