当前位置: 首页 > 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')

效果

在这里插入图片描述

相关文章:

python实现批量pdf转txt和word

文章目录 背景需求环境安装完整代码效果 背景需求 已经获取到了大量的pdf在download文件夹中,但是我需要的是txt文件和word文件~ 环境安装 pip install pdf2docx pdfminer.six完整代码 # pip install pdf2docx pdfminer.siximport os from pdf2docx …...

c++ 并发与多线程(12)线程安全的单例模式-2

一、内部静态变量的懒汉单例(C++11 线程安全) #include <iostream> #include <thread> #include <vector>class Single { public:// 获取单实例对象static Single& GetInstance();// 打印实例地址void Print();private:// 私有构造函数,防止外部创建对…...

银河麒麟v10x86或者arm离线安装服务

银河麒麟v10x86或者arm离线安装服务 最近有个项目&#xff0c;甲方的服务器用的全是国产化服务器银河麒麟&#xff0c;架构是x86的然后也无法连接外网&#xff0c;需要离线安装服务正常思路就是找到离线安装的包&#xff0c;然后拷贝到现场的服务器中进行安装所以问题就在于如…...

【Ansible自动化运维工具 1】Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

Ansible常用模块 一、Ansible1.1 简介1.2 工作原理1.3 Ansible的特性1.3.1 特性一&#xff1a;Agentless&#xff0c;即无Agent的存在1.3.2 特性二&#xff1a;幂等性 1.4 Ansible的基本组件 二、Ansible环境安装部署2.1 安装ansible2.2 查看基本信息2.3 配置远程主机清单 三、…...

Telegram 引入了国产小程序容器技术

Telegram 宣布为其开发者提供了一项“能够在 App 中运行迷你应用”的新功能&#xff08; 迷你应用即 Mini App&#xff0c;下文中以“小程序”代替&#xff09;。 在一篇博客文章中&#xff0c;Telegram 的开发者写到“小程序提供了可替代互联网网站的灵活界面&#xff08;cre…...

Capture One Pro 23图像处理工具「Mac」

Capture One Pro是一款专业的图像处理软件&#xff0c;旨在为摄影师和其他专业用户提供最佳的图像编辑和后期处理工具。 Capture One Pro 的主要功能包括 RAW 文件处理、图像编辑、颜色校正、曝光控制、局部调整、批处理等。它的相机支持列表非常广泛&#xff0c;几乎可以支持…...

rust OJ实战

目录 力扣 414. 第三大的数 力扣 628. 三个数的最大乘积 力扣 414. 第三大的数 给你一个非空数组&#xff0c;返回此数组中 第三大的数 。如果不存在&#xff0c;则返回数组中最大的数。 示例 1&#xff1a; 输入&#xff1a;[3, 2, 1] 输出&#xff1a;1 解释&#xff1a;…...

聊聊KafkaListener的实现机制

序 本文只要研究一下KafkaListener的实现机制 KafkaListener org/springframework/kafka/annotation/KafkaListener.java Target({ ElementType.TYPE, ElementType.METHOD, ElementType.ANNOTATION_TYPE }) Retention(RetentionPolicy.RUNTIME) MessageMapping Documented …...

Golang洗牌算法(Golang乱序算法)

Golang 洗牌算法&#xff08;乱序算法&#xff09;&#xff1b;需求背景&#xff1a;从一个文件下下读取所有文件&#xff0c;获取他们的名字&#xff0c; 将名字乱序排序&#xff0c;按着乱序后的序列&#xff0c;通过名字去找到文件&#xff0c;再上传&#xff0c;以达到上传…...

SpringBoot 源码分析(三) 监听器分析以及属性文件加载分析

前言 在创建SpringBoot项目的时候会在对应的application.properties或者application.yml文件中添加对应的属性信息&#xff0c;这些属性文件是什么时候被加载的&#xff1f;如果要实现自定义的属性文件怎么来实现&#xff1f;在讲属性加载之前先讲下监听器分析。 一、监听器分…...

记录nvm use node.js版本失败,出现报错: exit status 1: ��û���㹻��Ȩ��ִ�д˲�����

使用管理员权限运行cmd&#xff0c;再使用nvm use node.js版本号 参考&#xff1a; nvm use (node版本号)时报错&#xff1a; exit status 1: &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;㹻&#xfffd;&#xfffd;Ȩ&#xfffd;&#xfffd;ִ&#xf…...

【蓝牙协议】简介:蓝牙芯片、蓝牙协议架构

文章目录 蓝牙芯片架构另一个视角由下到上看&#xff1a;Controller-->Host由上到下看&#xff1a;Host-->Controller 蓝牙协议架构视角HW层——蓝牙芯片层Transport——数据传输层HOST——协议层 总结 参考&#xff1a;https://zhuanlan.zhihu.com/p/585248998 参考&…...

【深度学习】

什么是深度学习&#xff1f; 感知器 为了实现模拟人类的学习&#xff0c;科学家们首先设计了构成神经网络的基本结构神经元&#xff08;感知器模型&#xff09;&#xff0c;然后再由大量的神经元构成复杂的&#xff0c;能够实现各种功能的神经网络。 这种模式和超能陆战队中的…...

centos启动tomcat 并指定jdk 版本

在tomcat的catalina.sh文件手动设置JAVA_HOME变量即可 例如&#xff1a; 前提是文件存在 保存配置重新启动tomcat...

day37(事件轮询机制 ajaxGet执行步骤与案例(五个步骤) ajax属性 PHP返回JSON对象(两种))

一.事件轮询机制 1. 无论同步还是异步代码都要经过主线程编译&#xff0c;同步代码开始排在执行栈(主线程)上&#xff0c;异步代码开 始存放在任务队列中 2. 主线程优先执行同步代码&#xff0c;同步代码必须前一行执行完&#xff0c;后一行才能执行&#xff1b;当异步代码…...

Flume基本使用--mysql数据输出

MySQL数据输出 在MySQL中建立数据库school&#xff0c;在数据库中建立表student。SQL语句如下&#xff1a; create database school; use school; create table student(id int not null,name varchar(40),age int,grade int,primary key(id) ); 请使用Flume实时捕…...

MySQL——EXPLAIN用法详解

EXPLAIN是MySQL官方提供的sql分析的工具之一&#xff0c;可以用于模拟优化器执行sql查询语句&#xff0c;从而知道MySQL是如何处理sql语句。EXPLAIN主要用于分析查询语句或表结构的性能瓶颈。 以下是基于MySQL5.7.19版本进行分析的&#xff0c;不同版本之间略有差异。 1、EXP…...

69 划分字母区间

划分字母区间 题解1 贪心1&#xff08;方法略笨&#xff0c;性能很差&#xff09;题解2 贪心2&#xff08;参考标答&#xff09; 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&am…...

文件上传漏洞(1), 文件上传绕过原理

文件上传漏洞 一, 前端校验上传文件 添加 Javascript 代码&#xff0c;然后在 form 表单中 添加 onsubmit"returb checkFile()" <script>function checkFile() {// var file document.getElementsByName(photo)[0].value;var file document.getElementByI…...

【ARM 嵌入式 C 入门及渐进 10 -- 冒泡排序 选择排序 插入排序 快速排序 归并排序 堆排序 比较介绍】

文章目录 排序算法小结排序算法C实现 排序算法小结 C语言中常用的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序。下面我们来一一介绍&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a;冒泡排序是通过比较相邻元素的大小进行排…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...