日记大全

日记大全 > 句子大全

慢步python(教你怎么通过python编程来修改word文档内标题)

句子大全 2016-04-24 18:06:15
相关推荐

大家好,这里是地铁慢步,快慢的慢,因为笔者业余学的python编程,学得的确也算是慢,慢不打紧,一直在进步就好。

今天想教大家怎么实现通过python编程来修改word文档。熟悉word的人,可能会觉得多此一举,直接用OFFICE或者WPS就可以了啊,干嘛要用python?

慢步在工作中也有用到word,而且很大一部分时间都是在做重复性工作,而且上班用的不是自己的固定电脑,也不好用word宏。这样慢步有个设想,通过python创造一个小型程序,进行word文档的批量修改。

现在先实现第一个简单的功能:修改word文档内标题。

先创建有一个Word文档。

慢步随便搜索了一个通知,复制粘贴到新建的word文档中,保存为标题的名字。文档暂时保存在桌面吧。

新建项目、py文件、置入word文档

用慢步喜欢的IDE(集成开发环境)pycharm,打开pycharm,新建一个项目。

File - New Project

新建一个changeheadline的项目。

如图,打开目录,点第二个DeskTop(桌面),新建一个文件夹,再输入框内输入文件夹的名字changeheadline。点OK,再点OK,再点右下角Create(创建)。

之后再跳出一个打开新project的提示,选择ThisWindows(这个窗口)就好。

项目建好了,接着建一个同名的changeheadline.py。

在pycharm内项目目录处右键-New-Python File 输入py文件名changeheadline即可。

如对新建py文件有疑问可以回看作者的文章pycharm的基本操作,创建项目,新建py文件,编写代码及保存

因为路径问题太复杂,咱选择一种简单的方式,把需要修改的word文档放进项目文件夹里(即,我们桌面上changeheadline文件夹)

python库的引用,引用python-docx库

python程序经常使用已有的功能代码,这个过程叫引用。

python自带很多标准库,比如turtle库,可以进行基本的图形绘制;比如time库,可以处理时间。import time 就可以引用time库,在后续程序编写中可以调用time库的功能。

作为开源的编程语言,python也有很多第三方库。其中python-docx库,就是一个可以处理word文档的库。功能强大,但慢步找不到汉化版是python-docx库使用手册,只能自己到官网阅读。

标准库可以直接引用。但第三方库,需要安装到电脑上才能引用。不用担心,pycharm很强大的,直接省了很多复杂的步骤,你可以在pycharm直接安装第三方库。

上图就是慢步已安装的库文件。打开的方式为:

File - Setting - Project:changeheadline -Project Interpreter

打开翻译器,看到窗体的主体部分有三列内容

Package(库) Version(版本) Latest version(最新版本)

其中跟随python 3.5.3 一起安装的库有两个 pip 及 setuptools。

怎么安装第三方库?

点Package(库) Version(版本) Latest version(最新版本)右侧的+

输入想要的安装的库名称python-docx

左下角Install Package(安装库文件)。等待安装成功即可。

这时候,在py文件里面输入

import docx

就能实现引用python-docx库。

实现我们的功能吧

单纯描述有点难解释,慢步选择直接上图

慢步写好了代码,并运行了。

运行的结果是:在pycharm打印了标题内容,修改标题并另存为相应的word文档。如上图。

可以打开新生成的文档和原来文档看看。

哈哈O(∩_∩)O哈哈~标题格式变了。

因为慢步这里直接修改了文档第一段的文本,如果不设定格式,python-docx库会用它自己的默认格式。这比较坑了。

这个代码:

"""word文档标题修改程序作者:地铁慢步日期:2020-4-7"""from docx import Documentd = Document("关于调整3月注册国际投资分析师(CIIA)考试的公告.docx")print(d.paragraphs[0].text)changetotext = "word文档标题修改程序测试标题"d.paragraphs[0].text = changetotextd.save("word文档标题修改程序测试标题.docx")慢步决定再修改一下。把修改后的标题及保存的文件名再加个1,这样就不会覆盖之前产生的word文档了。

代码如下:

"""word文档标题修改程序作者:地铁慢步日期:2020-4-7"""from docx import Documentd = Document("关于调整3月注册国际投资分析师(CIIA)考试的公告.docx")print(d.paragraphs[0].runs[0].text)changetotext = "word文档标题修改程序测试标题1"d.paragraphs[0].runs[0].text = changetotextd.save(changetotext + ".docx")

再运行后,打开三个文档,对比如下:

幸不辱命。标题格式还是原来那个。

在python-docx库里面,格式由run确定,这是比较难理解的。

代码的解释

from docx import Document实现docx库Document功能的引用在写这个简单代码时,其实也出过错误,比如引用库的格式错误。大家注意到这里引用多了一个from,意思是从python-docx库里面引用Document功能。即只引用库里面的一部分。

如果直接用import docx,那后面所有与docx库文件有关的代码都需要相应加上“docx.”比如第一句应该变为

d = docx.Document("关于调整3月注册国际投资分析师(CIIA)考试的公告.docx")

d = Document("关于调整3月注册国际投资分析师(CIIA)考试的公告.docx")打开文档 关于调整3月注册国际投资分析师(CIIA)考试的公告.docx 并把文档赋值给变量d。之后的代码中d代表这个文档。print(d.paragraphs[0].runs[0].text)输出显示内容,文档的,段落【0】即第一段的,run【0】的,文本(即标题内容)changetotext = "word文档标题修改程序测试标题1"定义changetotext变量,赋值为文本内容"word文档标题修改程序测试标题1"d.paragraphs[0].runs[0].text = changetotext把标题内容修改为changetotext变量的内容d.save(changetotext + ".docx")changetotext + ".docx"是字符串的运算,即把"word文档标题修改程序测试标题1"与".docx"连在一起,得到"word文档标题修改程序测试标题1.docx"d.save()就是关闭文档d,括号内是保存的文档名,数据类型是字符串,即带双引号文本。

有所收获的话,给慢步点个赞呗。

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新