Python自动化办公(一) —— 根据PDF文件批量创建Word文档

Python自动化办公(一) —— 根据PDF文件批量创建Word文档

在这里插入图片描述


在日常办公中,我们经常需要根据现有的PDF文件批量创建Word文档。手动操作不仅费时费力,而且容易出错。幸运的是,使用Python可以轻松实现这个过程。本文将介绍如何使用Python脚本遍历一个文件夹中的PDF文件,并根据每个PDF文件的名字创建对应的Word空白文件。

安装所需的Python库

首先,我们需要安装python-docx库来创建和操作Word文档。在终端或命令行中运行以下命令进行安装:

pip install python-docx
编写Python脚本

以下是一个完整的Python脚本,演示如何根据PDF文件名创建对应的Word空白文件:

import os
from docx import Documentdef create_word_from_pdf(pdf_folder, word_folder):# 检查保存Word文件的文件夹是否存在,如果不存在则创建if not os.path.exists(word_folder):os.makedirs(word_folder)# 遍历PDF文件夹中的所有文件for filename in os.listdir(pdf_folder):if filename.endswith(".pdf"):# 获取文件名(去掉扩展名)base_name = os.path.splitext(filename)[0]# 创建对应的Word文件名word_filename = base_name + ".docx"word_path = os.path.join(word_folder, word_filename)# 创建一个空白的Word文档doc = Document()# 保存Word文档doc.save(word_path)print(f"Created: {word_path}")# 设置PDF文件夹和保存Word文件的文件夹路径
pdf_folder = 'path/to/pdf_folder'
word_folder = 'path/to/word_folder'# 调用函数
create_word_from_pdf(pdf_folder, word_folder)
详细步骤解释
  1. 导入必要的模块

    • os: 用于文件和目录操作。
    • Documentpython-docx: 用于创建和操作Word文档。
  2. 定义函数 create_word_from_pdf

    • pdf_folder: 存储PDF文件的文件夹路径。
    • word_folder: 将创建的Word文件保存到这个文件夹路径。
  3. 检查和创建Word文件夹

    • 使用 os.makedirs 创建目标文件夹,如果它不存在的话。
  4. 遍历PDF文件夹

    • 使用 os.listdir 列出文件夹中的所有文件,并过滤出以 .pdf 结尾的文件。
  5. 生成Word文件名

    • 使用 os.path.splitext 获取文件名(去掉扩展名),并生成对应的Word文件名。
  6. 创建空白Word文档并保存

    • 使用 Document 创建一个空白的Word文档。
    • 使用 doc.save 保存Word文档到指定路径。
运行脚本

将上面的代码保存为一个Python脚本文件(例如 create_word_from_pdf.py),然后在终端或命令行中运行:

python create_word_from_pdf.py

确保你已经设置了正确的 pdf_folderword_folder 路径。例如:

pdf_folder = '/path/to/your/pdf_folder'
word_folder = '/path/to/your/word_folder'

通过这个脚本,你可以根据PDF文件名在指定文件夹中创建对应的Word空白文件。如果你有任何特定需求或问题,请在评论区告诉我!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux的repo工具的入门

repo 是一个工具,用于管理 Git 仓库的集合,尤其在 Android 开发中被广泛使用。它是 Google 为 Android 项目开发的,以简化对大量 Git 仓库的管理。 主要特点 多仓库管理:repo 允许同时管理多个 Git 仓库,可以轻松执行…

MyBatis 的多级缓存机制是怎么样运作的?

引言:上周三,小 X 去面试一家中厂,其中面试官问到 MyBatis 的多级缓存机制是怎么样运行的?这个问题可以好好准备一下,很多人可能只会用 MyBatisPlus,简单的多表联查 SQL 语句可能都写不出来,更别…

Python 项目应该放弃requirements.txt?揭秘PDM的强大功能

目录 requirements.txt的局限性 PDM 的优势 如何使用 PDM 安装 PDM 初始化项目 添加依赖 管理依赖 示例代码 初始化项目并添加依赖 编写简单的 Flask 应用 运行应用 PDM高级功能 多环境管理 脚本管理 发布包 在 Python 项目中管理依赖项,最常见的方式…

Android APP memory统计方法

目录 进程的内存信息概述 关键的术语 测试步骤 测试步骤 数据处理 数据分析: 进程内存信息 Dumpsys meminfo -a PID Procrank Procmem PID 特殊内存信息 Mali ION(multi-media,gralloc) 进程地址空间信息 /proc/pid/smaps Showmap PID …

随笔-来了,安了

依照领导定的规矩,周五又去了分公司,赋能一线去了。到了地方就是开会->现场解决问题->干饭->开会过需求、提供解决方案,充实得厉害。强度也不小,中午干的一大碗饭,到五点就饿了。 六点带着分公司催着上线的需…

5000天后的世界

为何可以预见未来 1993年,在互联网的黎明时代,凯文凯利创办了《连线》杂志。他曾经采访过以比尔盖茨、史蒂夫乔布斯、杰夫贝佐斯为代表的一众风云创业家。《连线》杂志是全球发行的世界著名杂志,一直致力于报道科学技术带来的经济、社会变革…

【0基础学爬虫】爬虫基础之自动化工具 DrissionPage 的使用

概述 前三期文章中已经介绍到了 Selenium 与 Playwright 、Pyppeteer 的使用方法,它们的功能都非常强大。而本期要讲的 DrissionPage 更为独特,强大,而且使用更为方便,目前检测少,强烈推荐!!&a…

Google Earth Engine(GEE)——计算闪闪红星的ndvi的值和折线图(时序分析)

函数: ui.Chart.image.doySeries(imageCollection, region, regionReducer, scale, yearReducer, startDay, endDay)

手把手教你改造Sentinel Dashboard 实现配置持久化

一. 概述 Sentinel客户端默认情况下接收到 Dashboard 推送的规则配置后,可以实时生效。但是有一个致命缺陷,Dashboard和业务服务并没有持久化这些配置,当业务服务重启后,这些规则配置将全部丢失。 Sentinel 提供两种方式修改规则…

政务云参考技术架构

行业优势 总体架构 政务云平台技术框架图,由机房环境、基础设施层、支撑软件层及业务应用层组成,在运维、安全和运营体系的保障下,为政务云使用单位提供统一服务支撑。 功能架构 标准双区隔离 参照国家电子政务规范,打造符合标准的…

B3981 [信息与未来 2024] 图灵完备

题目描述 (你不需要看懂这张图片;但如果你看懂了,会觉得它很有趣。) JavaScript 是一种功能强大且灵活的编程语言,也是现代 Web 开发的三大支柱之一 (另外两个是 HTML 和 CSS)。灵活的 JavaScript 包含“自动类型转换…

从数据库到数据仓库:数据仓库导论

导言 本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。 数据仓库作为重要的数据管理和分析工具,已经发展了30多年,其过程中生态和技术都发生了巨大的变化。尽管…

分布式数据库核心问题和解决方法

当下,由于成本压力以及数据保护的要求,采用国产数据库的呼声越来越高,但是国产数据库数量众多,良莠不齐,没有选择数据库比较靠谱的标准,业内真正懂得数据库的人很少,且为了这块大的蛋糕&#xf…

Axios进阶

目录 axios实例 axios请求配置 拦截器 请求拦截器 响应拦截器 取消请求 axios不仅仅是简单的用基础请求用法的形式向服务器请求数据,一旦请求的端口与次数变多之后,简单的请求用法会有些许麻烦。所以,axios允许我们进行创建axios实例、ax…

Retrofit 注解参数详解

添加依赖 implementation com.squareup.retrofit2:retrofit:2.9.0 implementation com.squareup.retrofit2:converter-gson:2.9.0 初始化Retrofit val retrofit Retrofit.Builder().baseUrl("http://api.github.com/").addConverterFactory(GsonConverterFactory…

【Kafka】Kafka提高生产者吞吐量、数据可靠性-06

【Kafka】Kafka提高生产者吞吐量-06 1. 提高生产者吞吐量2.数据可靠性2.1 回顾数据的发送流程2.2 ack应答级别2.2.1 acks:02.2.2 acks:12.2.2 acks:-1(all)2.2.2.1 数据可靠性分析2.2.2.2 数据完全可靠 2.3 可靠性总结2.4 可靠性代码配置 1. 提高生产者吞吐量 import org.apach…

科技云报道:“元年”之后,生成式AI将走向何方?

科技云报道原创。 近两年,以大模型为代表的生成式AI技术,成为引爆数字原生最重要的技术奇点,人们见证了各类文生应用的进展速度。Gartner预测,到2026年,超过80%的企业将使用生成式AI的API或模型,或在生产环…

「实战应用」如何用图表控件LightningChart JS创建SQL仪表板应用(二)

LightningChart JS是Web上性能特高的图表库,具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画,常用于贸易,工程,航…

OpenCore 引导完美升级

备份原有 OC (做好回滚的准备下载新版 OpenCore https://github.com/acidanthera/OpenCorePkg/releases将 1, 3, 4 里面的文件使用新版进行替换 4 里面的文件严格来说并不需要, 只是留着方便使用不追求完美到这就可以收工了将 OC 复制到 U 盘 EFI U 盘格式化可以使用: diskutil…

微服务开发与实战Day09 - Elasticsearch

一、DSL查询 Elasticsearch提供了DSL(Domain Specific Language)查询,就是以JSON格式来定义查询条件。类似这样: DSL查询可以分为两大类: 叶子查询(Leaf query clauses):一般是在特…