Python应用 , 读写docx文件!

使用Python轻松批量读取Word文档及各种Word元素的文字内容 本文介绍了如何使用Python批量从Word文档及各种Word元素中提取文本内容。包含详细步骤介绍及代码示例。 阅读详情

字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx。在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电子版作业时,需要填写日期等信息,假设一个年级有100人,那么100份作业就需要填写100次日期, 这个工作是简单的、重复的,那么是不是可以将这个工作交给计算机去做呢?

 

 

 

 

Python资源共享群:484031800

 

要想让计算机完成这项工作,就需要通过编程的方式告诉计算机应该怎么做。我们选择python编程语言来完成这项工作。

第一步:安装第三方操作docx文件的依赖库docx。

python中提供了支持读写docx文件的库为python-docx,首先需要安装这个第三方库,可以通过包管理软件pip来完成。

pip install python-docx

第二步:打开docx文件,假设要打开的文件名为'作业1.docx'。

doc = Document('作业1.docx')

有了docx对象,接下来就可以对文件进行操作了。

第三步:找到需要修改的位置,并完成修改。

通过分析docx文档, 了解到需要处理的内容在表格中。

t0 = doc.tables[0]

该方法可以获得文件的第一个表格。

接下来可以获得表格的第一行。

row0 = t0.rows[0]

接下来可以获得该行的第一个单元格,并打印该单元格的内容。

cell0 = row0.cells[0]

cell0.text

# 输出结果为:学号

该结果与文章开头的文件截图内容一致,从上面可以看到,利用python的docx库,可以非常方便的操作docx文件。

按照最初提出的需求,需要将表格中的日期修改为今天,可以看到该单元格位于第一个表格的第二行的第二个单元格。

doc.tables[0].rows[1].cells[1].text = '2019-07-19'

第四步:保存文件。

doc.save('作业1-new.docx')

 

 

 

 

 

最后一步:批处理所有文件。

要想批处理所有文件,只需要遍历指定文件夹中的所有文件,然后通过上面的方式对每一个文件进行处理即可完成任务。

import pathlib

from docx import Document

for item in pathlib.Path('/作业目录').iterdir():

# item.name 即为文件名

doc = Document(item.name)

doc.tables[0].rows[1].cells[1].text = '2019-07-19'

doc.save(item.name)

本文介绍了利用python批处理docx文件的方法,这个方法是非常实用、有效的,能够极大的提高工作效率,充分践行把简单的、重复的工作交给计算机。还在等什么呢,赶快下载试用吧,get一个新的技能!

如果您对本文感兴趣,欢迎持续关注后续更多Python应用系列文章。

python-docx库读写word文档 python-docx库读写word文档 一、简介 python-docx是利用python来读写word文件的第三方库。 开源地址是:https://github.com/python-openxml/python-docx 官方教程:https://python-docx.readthedocs.io/en/latest/ 安装:pip install python-docx python-docx库读写word文档主要涉及三个结构对象,层层递进。 Document:文档对象 from docx i 阅读详情

相关推荐

【python-docx】Python读写Word文件

python-docx是一个在Python环境下读写word文档的“利器”。在使用前可以通过pip install python-docx命令安装,再通过import docx 引用即可。下面简单介绍一下 python-docx 的基本操作。 1、新建/打开及保存 文档的新建和打开比较简单,只需要用docx的Document类,若指定路径则是打开文档;若没有指定路径则是新建文档。 对文档...

M&Q的博客 8123

Python应用 | 读写docx文件 (值得收藏的技能)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。字处理软件是平时办公必备的同时也是最常用的软件之一,而字...

算法与编程之美 824

python生成docx文件

python 生成docx文件第二种方法。在这其中有指纹和盖章。

leshen_88的博客 2516

python读取Word文档内容

本方法存在两个问题 1.Profit出现的次数没统计进去 2.如果同一个句子中出现了两次profit,只统计出1次。 请大神指教 ##打开网易财报 ##计算关键词profit出现的次数 from docx import Document doc=Document('Netease Q2 2019 Earnings Release-Final.docx') count=0 for paragraph in doc.paragraphs: for run in paragraph.runs:..

weixin_45565595的博客 584

Python python-docx库读写word文档

文章目录1.python-docx官方文档2.安装3.使用3.1 打开文档3.2 修改文档中现有的表格3.3 添加文档3.3.1 添加段落3.3.2 添加表格3.3.3 添加图片`最终效果如下:`附:获取桌面路径方法 1.python-docx官方文档 https://python-docx.readthedocs.io/en/latest/index.html 2.安装 pip install ...

超级大洋葱的博客 7662

松材线虫病害智能检测:基于YOLOv8的无人机航拍数据集构建与模型优化

本文探讨了基于YOLOv8的无人机航拍技术在松材线虫病害智能检测中的应用。通过构建高质量巡检数据集和优化模型架构(如RepVit主干网络和跨尺度特征融合模块),显著提升了病害识别准确率。该方案在复杂森林环境中表现出色,将检测效率提高数倍,为林业病害防控提供了高效解决方案。

vulkan6gpu的博客 995

python读取docx文件_python使用docx模块读写docx文件的方法与docx模块常用方法详解...

一,docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。二,相关概念如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。1,Docume...

weixin_39926193的博客 767

保姆级教程:在Davinci Configurator里配置BswM的ECU状态机(附状态切换流程图)

本文提供了一份详细的AUTOSAR BswM模块配置指南,通过Davinci Configurator工具实现ECU状态机的构建与管理。内容涵盖从模式请求端口创建到状态切换规则定义的全流程,特别针对Ecu State Handling进行了深入解析,并附有状态切换流程图,帮助汽车电子工程师高效完成ECU状态管理配置。

weixin_28366475的博客 411

python读取docx的内容输出_Python应用 , 读写docx文件!

字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx。在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电子版作业时,需要填写日期等信息,假设一个年级有100人,那么100份作业就需要填写100次日期, 这个工作是简单的、重复的,那么是不是可以将这个工作交给计算机去做呢?Python资源共享群:4840...

weixin_39640085的博客 658

不同网段共享打印机的方法

不同网段怎么共享打印机,跨路由怎么共享打印机

weixin_44686104的博客 1万+

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3411

python 修改文件名_Python应用 , 读写docx文件!

字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx。在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电子版作业时,需要填写日期等信息,假设一个年级有100人,那么100份作业就需要填写100次日期, 这个工作是简单的、重复的,那么是不是可以将这个工作交给计算机去做呢? Python资源共享群:484...

weixin_39626586的博客 426

瑞数jsvmp算法还原流程讲解

​ 又是很久没写文章了,今天水一篇文章吧,鉴于之前有看到过别人的文章被警告的案例,所以这篇文章就仅写一下还原瑞数vmp的大概流程吧(仅记录下自己还原的思路)

博客 6608

python制作表格处理软件_Python应用 , 读写docx文件!

字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx。在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电子版作业时,需要填写日期等信息,假设一个年级有100人,那么100份作业就需要填写100次日期, 这个工作是简单的、重复的,那么是不是可以将这个工作交给计算机去做呢? Python资源共享群:484...

weixin_39891262的博客 131

135、转动惯量辨识方法

<think>我们要求根据内容生成≤150字的文章摘要。内容是关于电机控制中转动惯量辨识的方法和工程经验。摘要需简洁概括核心:转动惯量重要性、三种方法(加减速法、正弦扫频、MRAS)、工程注意点(摩擦补偿、采样同步等)、实用建议(组合使用、滤波限幅、安全保护)。字数严格≤150。需要提炼。</think>转动惯量辨识是电机控制的关键,负载变化会导致速度环失稳。工程常用加减速法(简单可靠)、正弦扫频法(高精度)、MRAS在线辨识。实操需补偿摩擦、同步采样、控制激励幅度。建议混合使用,辨识结果需滤波限幅,并设置

2401_88858637的博客 41

i茅台最新任务python脚本

从固定的 `header_context` 生成HTTP请求头,并加入用户的`userId`、`MT-Token`等动态信息,以模仿真实的请求。- 发送预约请求,提交商品和门店的参数,如 `sessionId`、`shopId`、`itemId` 等。- 定时任务:通过 `cron` 表达式 `0 0 9/21 * * *`,表示每月的9日和21日的0点执行。- `login`:使用验证码进行登录,并返回 `token` 和 `userId`。- 获取北京时间当天0点的时间戳,作为预约请求的时间参数。

三维点云技术探索 987

python读取docx文件_Python读写docx文件的方法

Python读写word文档有现成的库可以处理。我这里采用 python-docx。可以用pip install python-docx安装一下。这里说一句,ppt和excel也有类似的库哦,而且是直接读取文件里面的xml数据。所以doc格式得另找其他库处理,doc格式不是基于xml的。帮助文档:http://python-docx.readthedocs.org/en/latest/1、新建或打...

weixin_39834678的博客 4005

Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可。在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接。

分享学习成长历程,Winter is coming! 1万+

python读写 doc文件和docx文件

背景: Python 中可以读取 word 文件的库有 python-docx 和 pywin32。 优点缺点python-docx跨平台只能处理 .docx 格式,不能处理.doc格式pywin32仅限 windows 平台.doc 和 .docx 都能处理。 一. pywin32模块 这个库很强大,不仅仅可以读取 word,但是网上介绍用 pywin32 读取 .doc 的文章真不多,因为,真心不好用。 以下是 pywin32 读取 .doc 的代码示例,但是读取表格有问题,输出全是空,原因不

Vertira的博客 9350

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python使用docx模块读写docx文件的方法与docx模块常用方法详解

一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。 二,相关概念 如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。 1,Document对象,表示一个word文档。 2,Paragraph对象,表示word文档中的一个段落 3,Para

auspark的专栏 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python使用docx模块读写docx文件的方法与docx模块常用方法

python使用docx模块读写docx文件的方法与docx模块常用方法

ldgk3ekkd的博客 7597

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python读取docx文件出错_Python读写docx文件的方法

这篇文章主要介绍了关于Python读写docx文件的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下Python读写word文档有现成的库可以处理。我这里采用 python-docx。可以用pip install python-docx安装一下。这里说一句,ppt和excel也有类似的库哦,而且是直接读取文件里面的xml数据。所以doc格式得另找其他库处理,doc格式不是基于xm...

weixin_31629913的博客 1951

python读docx文件_Python读写docx文件的方法

Python读写word文档有现成的库可以处理。我这里采用 python-docx。可以用pip install python-docx安装一下。这里说一句,ppt和excel也有类似的库哦,而且是直接读取文件里面的xml数据。所以doc格式得另找其他库处理,doc格式不是基于xml的。1、新建或打开文件。这个比较简单用docx的Document类,若指定路径则是打开文档;若没有指定路径则是新建文...

weixin_29239279的博客 569

python读取doc/docx文件

仅此记录python读取doc/docx文件的方法,和常用简单的open txt文件完全不同(版本python 3.6 Win10) docx 使用docx包,python为其专用接口,python-docx,使用 pip install python-docx 安装即可,本人第一次在pycharm直接安装,出现了关于版本报错的问题,后来直接使用pip安装成功,简单使用如下: i...

lavender_hhl的博客 4万+

python 读写 json,csv,txt,docx,xlsx,xls文件大全

最近再处理数据的时候,总会用到读写json,csv,xlsx和xls文件代码这里就做个总结记录一下。

ac不知深的博客 2303
上一篇: Python趣用—配平化学方程式!
下一篇: Python爬虫新手教程:手机APP数据抓取 pyspider!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值