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

Python自动化办公:批量处理Word文档的实用技巧

Python自动化办公批量处理Word文档的实用技巧在日常办公中处理大量Word文档是常见任务比如批量修改格式、提取内容或生成报告。手动操作不仅耗时还容易出错。本文将介绍如何使用Python自动化处理Word文档通过代码示例演示具体操作步骤提升办公效率。## 准备工作首先确保你的Python环境已安装必要的库。我们将使用python-docx库来操作Word文档。如果未安装可以通过pip安装bashpip install python-docx安装完成后创建一个新的Python脚本文件例如word_processor.py用于编写代码。## 批量读取Word文档假设我们有一个文件夹包含多个Word文档需要批量读取它们的内容。以下代码演示如何遍历文件夹中的所有.docx文件并打印每个文档的文本内容。pythonimport osfrom docx import Documentdef read_word_files(folder_path): “” 读取指定文件夹中的所有Word文档内容 :param folder_path: 文件夹路径 “” for filename in os.listdir(folder_path): if filename.endswith(‘.docx’): file_path os.path.join(folder_path, filename) doc Document(file_path) text ‘\n’.join([paragraph.text for paragraph in doc.paragraphs]) print(f文件: {filename}\n内容:\n{text}\n—“)# 示例读取当前目录下的docx文件read_word_files(‘.’)运行此代码它会输出每个文档的文本内容。你可以根据需要修改代码比如将内容保存到文件或数据库。## 批量修改文档格式有时需要统一多个文档的格式例如设置所有标题为特定样式。以下示例展示如何批量修改文档中段落的字体和大小。pythonfrom docx.shared import Ptfrom docx.enum.text import WD_ALIGN_PARAGRAPHdef modify_format(folder_path): “”” 批量修改Word文档的格式设置标题居中并加粗正文左对齐 :param folder_path: 文件夹路径 “” for filename in os.listdir(folder_path): if filename.endswith(‘.docx’): file_path os.path.join(folder_path, filename) doc Document(file_path) for paragraph in doc.paragraphs: if paragraph.text.strip(): # 跳过空段落 if paragraph.style.name.startswith(‘Heading’): # 假设标题样式以Heading开头 paragraph.alignment WD_ALIGN_PARAGRAPH.CENTER for run in paragraph.runs: run.bold True run.font.size Pt(14) else: paragraph.alignment WD_ALIGN_PARAGRAPH.LEFT for run in paragraph.runs: run.font.size Pt(12) # 保存修改后的文档添加前缀modified_ new_filename ‘modified_’ filename new_path os.path.join(folder_path, new_filename) doc.save(new_path) print(f已处理: {filename} - {new_filename}“)# 示例修改当前目录下的文档格式modify_format(‘.’)这段代码会为每个文档创建一个新版本标题居中加粗正文左对齐。你可以调整样式参数以适应具体需求。## 批量提取文档信息从多个文档中提取特定信息比如统计关键词出现次数是常见需求。以下代码演示如何批量统计文档中“项目”一词的出现频率。pythondef extract_keyword_count(folder_path, keyword‘项目’): “”” 批量统计Word文档中关键词的出现次数 :param folder_path: 文件夹路径 :param keyword: 要统计的关键词 “” results {} for filename in os.listdir(folder_path): if filename.endswith(‘.docx’): file_path os.path.join(folder_path, filename) doc Document(file_path) text ‘\n’.join([paragraph.text for paragraph in doc.paragraphs]) count text.lower().count(keyword.lower()) # 不区分大小写统计 results[filename] count print(f文件: {filename}, ‘{keyword}’ 出现次数: {count}“) return results# 示例统计当前目录下文档中“项目”的出现次数extract_keyword_count(‘.’)运行后会输出每个文档中关键词的计数。你可以扩展此功能比如提取表格数据或生成汇总报告。## 批量生成报告文档基于现有数据自动生成Word报告可以节省大量时间。以下示例展示如何从CSV文件读取数据并生成一个包含表格的Word文档。pythonimport csvfrom docx import Documentfrom docx.shared import Inchesdef generate_report_from_csv(csv_path, output_path‘report.docx’): “”” 从CSV文件生成Word报告文档 :param csv_path: CSV文件路径 :param output_path: 输出Word文档路径 “” doc Document() doc.add_heading(‘项目报告’, 0) # 添加标题 # 读取CSV数据 with open(csv_path, ‘r’, encoding‘utf-8’) as file: reader csv.reader(file) data list(reader) # 添加表格 table doc.add_table(rows1, colslen(data[0])) table.style ‘Light Grid Accent 1’ # 设置表格样式 # 填充表头 header_cells table.rows[0].cells for i, header in enumerate(data[0]): header_cells[i].text header # 填充数据行 for row in data[1:]: row_cells table.add_row().cells for i, cell in enumerate(row): row_cells[i].text cell doc.add_paragraph(‘报告生成时间: ’ datetime.datetime.now().strftime(’%Y-%m-%d %H:%M:%S’)) doc.save(output_path) print(f报告已生成: {output_path})# 示例假设有一个data.csv文件生成报告generate_report_from_csv(‘data.csv’)此代码会创建一个包含表格和时间的Word报告。你可以根据实际数据调整CSV格式和报告内容。## 总结与扩展本文介绍了使用Python和python-docx库批量处理Word文档的基本方法包括读取、修改格式、提取信息和生成报告。这些技巧可以显著提高办公效率减少重复劳动。为了进一步自动化你可以结合其他库如pandas处理数据或使用schedule库定时运行脚本。根据具体场景调整代码实现更复杂的办公自动化任务。注意在实际应用中建议先备份原始文档避免数据丢失。代码示例基于常见办公需求设计可能需要根据你的文档结构进行微调。

相关文章:

Python自动化办公:批量处理Word文档的实用技巧

Python自动化办公:批量处理Word文档的实用技巧 在日常办公中,处理大量Word文档是常见任务,比如批量修改格式、提取内容或生成报告。手动操作不仅耗时,还容易出错。本文将介绍如何使用Python自动化处理Word文档,通过代码…...

突破性升级:Windows Package Manager 1.8让软件管理效率提升300%

突破性升级:Windows Package Manager 1.8让软件管理效率提升300% 【免费下载链接】winget-cli WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Appl…...

全球AI范式变革与中国产业的破局路径

全球AI范式变革与中国产业的破局路径摘要当前全球人工智能产业正处于范式切换的关键节点,底层技术路线的竞争已经从参数规模竞赛转向认知框架的本质性革新。本文基于2026年行业最新发展动态,系统分析当前主流AI范式的内生性缺陷,梳理中美AI产…...

机场应急处置保障:黎阳之光无感赋能,精准调度救援,提升处置能力

机场空间结构复杂、人员高度密集、设备设施集中,易受突发天气、设备故障、突发险情等各类突发事件影响,应急处置、人员疏散、救援调度的效率,是保障机场安全运行的核心关键。传统应急模式下,现场人员分布态势模糊、被困位置无法快…...

基因鉴定步骤及常见问题

一、基因组 DNA 提取(一)消化鼠尾消化液配方为溶剂水与SDS、酶。Solution:0.5%SDS破坏细胞膜和核膜,释放DNA。Enzyme:1 mg/ml蛋白酶K分解样本中的蛋白质,释放DNA。(二)样品处理1、小…...

CANN ops-transformer:MC2 通信融合算子怎么加速 MoE 的 All-to-All

MoE 的 Expert Parallel 需要全互连通信——每个 token 发给它路由到的专家所在的卡,再收回来。这个 All-to-All 通信在 8 卡 MoE 上能占 30% 的推理时间。MC2(Merge-Communicate-Split)把通信和计算融合在一起,在等数据的时候不闲…...

CANN-Profiler-昇腾NPU上推理慢到底慢在哪

推理服务上线前最重要的一步是性能 Profiling。ATB 的推理速度不达标,可能有十几个原因——不拿数据说话就是瞎猜。CANN Profiler 给你精确到每个 kernel 的执行时间。 开启 Profiling import torch_npu# 方法 1:Python API with torch_npu.profiler.pro…...

洛雪音乐音源:打破音乐平台壁垒的聚合解决方案

洛雪音乐音源:打破音乐平台壁垒的聚合解决方案 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否曾经为了听一首歌而在多个音乐平台之间来回切换?或者因为某个平台没有…...

投影仪的分辨率不高,仅为1024*768的分辨率,而笔记本电脑2560×1600(2.5K)分辨率。‌‌——如果采用扩展屏复制笔记本电脑分辨率,发现那个投影仪投影出的字很小,且看不清。 将笔记本电脑的

投影仪的分辨率不高,仅为1024*768的分辨率,而笔记本电脑25601600(2.5K)分辨率。‌‌——如果采用扩展屏复制笔记本电脑分辨率,发现那个投影仪投影出的字很小,且看不清。 将笔记本电脑的分辨率也改为1024*768的分辨率,投影仪字体大小会放大才看的清楚,但是软件无法全部显…...

iMLite AI Map 2.1:嵌入式离线地图如何赋能智能穿戴独立导航

1. 项目概述:当智能穿戴“断网”后,如何实现精准导航?作为一名在智能硬件和嵌入式系统领域摸爬滚打了十多年的从业者,我见过太多“伪智能”产品。它们功能花哨,但一离开手机或网络,就立刻变成一块“砖”。尤…...

跨平台macOS组件获取:系统部署专家的高效解决方案

跨平台macOS组件获取:系统部署专家的高效解决方案 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS 在macOS系统部署和维护的复杂环境中,…...

RK3588开发环境搭建三步曲:从零构建嵌入式Linux编译与烧录系统

1. 项目概述与核心价值拿到一块全新的RK3588核心板或开发板,看着它强大的八核CPU和NPU,心里盘算着各种AI和多媒体应用的你,是不是也曾在环境搭建这一步卡住过?从官方SDK下载、编译工具链配置,到内核编译、文件系统烧录…...

技术负责人用 Claude 这半年:工具我让全队用了,但有几件事我没敢交出去

我管一个二十来人的研发团队,之前在一家做交易系统的公司带过基础架构。 Claude Code 在我们团队铺开大概半年了,从我自己用,到全员用,到现在 进了 CI、进了评审流程。这篇不写"AI 让团队效率翻倍"那种东西。我想说的是另一件事: 作为技术负责人,这半年我真正花心思的…...

C++跨平台线程池组件设计:从核心原理到工程实践

1. 项目概述:为什么我们需要一个跨平台的线程池组件?在软件开发,尤其是高性能服务端、桌面应用或游戏引擎的开发中,线程池(Thread Pool)是一个绕不开的核心基础设施。我从业十几年,从早期的单线…...

RK3399嵌入式3D人脸识别系统:双目视觉与轻量化算法实战

1. 项目概述与核心价值最近在做一个挺有意思的项目,客户那边有个需求,要在他们现有的RK3399工控板上,集成一套完整的3D人脸识别系统。这活儿听起来挺酷,但真干起来,里头门道不少。RK3399这块板子大家应该不陌生&#x…...

STM32MP1 M4内核定时器中断配置与调试实战

1. 项目概述:深入STM32MP1的M4内核定时器世界在嵌入式开发里,定时器(Timer)就像系统的心跳和闹钟,是驱动一切周期性任务和精确时序控制的基础。对于STM32MP1这颗强大的异构多核处理器,其Cortex-M4协处理器侧…...

STM32MP1 M4核心定时器中断实战:从原理到1ms精准时基实现

1. 项目概述:深入STM32MP1的M4核心定时器世界在嵌入式开发中,定时器(Timer)堪称是系统的“心跳”和“节拍器”,其重要性不言而喻。对于STM32MP1这款集成了双核Cortex-A7和单核Cortex-M4的异构处理器,其M4核…...

基于RK平台的智慧出行方案:从芯片选型到车规级开发的实战指南

1. 项目概述:当“智慧出行”遇上“RK平台”最近几年,如果你关注汽车电子或者物联网领域,一定对“智慧出行”这个词不陌生。它早已不是科幻电影里的概念,而是真真切切地走进了我们的生活,从智能座舱里流畅的语音交互、多…...

CANN-昇腾NPU长序列训练-128K上下文怎么不OOM

Llama 3 支持 128K 上下文长度。训练时 128K 序列的 Attention 显存是 O(N):128K 128K fp16 32GB 每层,32 层 1TB。显然放不下。FlashAttention 把显存从 O(N) 降到 O(N),但在训练场景下还有额外挑战。 FlashAttention 的显存节省 标准 At…...

MPC5604B/C Memory Map 内存映射全解析

一、前言 本文章主要说明底层开发、寄存器操作、Boot、Flash 编程,告诉你Flash 在哪、RAM 在哪、每个外设寄存器基地址是多少、保留区是哪些。 用途: 写寄存器头文件 写链接脚本 .ld Flash 擦写、Boot 跳转 调试定位非法地址 外设地址计算 二、MPC5604B 地址空间总规则(Pow…...

龙芯3A5000工业主板实战:从硬件部署到软件生态的国产化替代指南

1. 项目概述:一颗“中国芯”的工业级落地 最近,圈子里关于国产自主平台的消息又热闹了起来。这次的主角,是集特智能新推出的一款工业主板,核心搭载了龙芯3A5000处理器和7A2000桥片。对于长期深耕工业控制、边缘计算、网络安全这些…...

MPC5604B/C 信号与引脚全解|硬件 / 底层必看

一、前言 本章主要说明每个引脚叫什么、干什么、上电默认状态、是什么电气类型、复用哪些功能。包含 封装引脚分布(64/100/144LQFP、208MAPBGA) 电源 / 地 / 复位 / 晶振 / JTAG 引脚 引脚电气类型(S/M/F/I/J/X) 复位期间引脚状态 所有 GPIO 的复用功能 AF0~AF3 引脚与外设…...

基于Java的外卖点餐配送系统_43lq510m

目录 同行可拿货,招校园代理 ,本人源头供货商项目概述技术栈核心功能模块项目亮点部署方式学习价值 项目技术支持获取博主联系方式 源码获取详细视频演示 :同行可合作点击我获取源码->获取博主联系方式->进我个人主页--> 同行可拿货,招校园代理 ,本人源头供…...

CANN-昇腾NPU-多机多卡-怎么把16卡用出32卡的效果

16 张 Atlas 800I A2 的理论算力是 16 310 4960 TFLOPS(fp16)。但实际训练 Llama2-7B 只用到了 3200 TFLOPS——利用率 64%。这篇讲怎么把利用率从 64% 提到 85%,等效 16 卡用出 25 卡的效果。 利用率低的原因 理论算力: 16 310 4960 TFL…...

C++中多才多艺的 const

1. 定义一个常全局变量1const int global 100; // 初始化之后不可再赋值这样的global实际上是一个常量,这是C用来取代宏定义的其中一种措施,const常量有类型检测,提高编译器的效率。2. 定义常指针这有两个版本,分别是&#xff1a…...

新手学习Linux系统的11点建议

随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题…...

Linux操作系统安装图文配置教程详细版

随着嵌入式的发展,Linux的知识是必须的一部分,下面就让我们进行Linux系统的安装过程演示:一、 Linux的安装在此博客中以红旗(Red Flag)Asianux Workstation 3为例进行描述,其他版本的Linux与此相似。 1.1 安…...

HermesAgent工具如何快速对接Taotoken的多模型服务提供商

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 HermesAgent工具如何快速对接Taotoken的多模型服务提供商 基础教程类,本文将指导使用HermesAgent工具的开发者&#xf…...

今天不建Lovable ML平台,明天就被团队弃用!2025年AI工程团队留存率预警下的4步速建法

更多请点击: https://kaifayun.com 第一章:Lovable ML平台搭建 构建一个真正“可亲、可用、可信赖”的机器学习平台,核心不在于堆砌尖端框架,而在于以开发者体验(DX)和数据科学家工作流为设计原点。Lovab…...

写给新手的 asnumpy:昇腾原生 NumPy 到底是啥?

上周组里新来个校招生,看到代码里有个 asnumpy() 问我:“哥,这跟 NumPy 有啥区别?为啥不直接用 NumPy?” 好问题。今天一次说清楚。 asnumpy 是啥? asnumpy 是昇腾 NPU 上的原生 NumPy 实现。 一句话说清楚…...