游戏攻略网
当前位置: 首页 游戏攻略

如何用python 处理word(用Python自动化读写Word文档)

时间:2023-05-21 作者: 小编 阅读量: 1 栏目名: 游戏攻略

在我们Python处理Word的时候,段落样式可以应用于Paragraph对象,字符样式可以应用于Run对象,链接的样式可以应用于这两种对象。可以将Paragraph和Run对象的style属性设置为一个字符串,从而设置样式。对于Run对象的字符text属性,都有3个状态:True(启用)、False(禁用)和None(默认)。它有两个参数,字符串表示文本内容,后面数字是标题层级。

如何用python 处理word?大家好,最近有同事需要批量出500Word文档,按照1个Word文档耗时1分钟来算也需要8.33小时足足有1天工时于是,这位同事找到了才哥帮忙,才哥接过需求花了不到30分钟写好脚本,运行脚本不到1分钟就生成了500份Word文档并且进行了分类归档,现在小编就来说说关于如何用python 处理word?下面内容希望能帮助到你,我们来一起看看吧!

如何用python 处理word

大家好,

最近有同事需要批量出500Word文档,按照1个Word文档耗时1分钟来算也需要8.33小时足足有1天工时。于是,这位同事找到了才哥帮忙,才哥接过需求花了不到30分钟写好脚本,运行脚本不到1分钟就生成了500份Word文档并且进行了分类归档!

这就是Python的魅力,让工作更轻松!

今天,我们就来了解一下用Python读写Word文档。未来,我将再出两期进行补充介绍,一篇是批量生成Word文档的方法(也就是我搞定同事需求的案例),另外一篇是详解Python写Word(包含可能你都不知道的各种Word格式),敬请期待哈~

目录:

  • 1. 安装模块

  • 2. 读取Word文档

  • 3. 写入Word文档

1. 安装模块

这里我们用到的是python-docx模块,读写Word文档的操作均有它完成!

# 安装该模块,在命令行键入以下命令pip install python-docx

在进行后续介绍前,我们先简单了解一下Word文档。和纯文本(比如txt)相比,.docx文件有很多种结构,这些结构在python-docx中用3种不同的类型来表示:最高一层是Document对象表示文档,每个Document对象包含一个Paragraph对象也就是段落组成的列表,而每个Paragraph对象则包含一个Run对象的列表,至于Run对象大家可以通过下面的段落Paragraph来了解。

我们知道Word里的文本包含有很多格式,比如字体、字号、粗体/斜体、颜色等等。一个Run对象是具有相同格式的文本,当发生变化的时候就需要一个新的Run对象,这也就是上图中1个Paragraph对象有4个Run对象的原因。

理解以上知识后,我们再来了解读与写吧。

2. 读取Word文档

我们本地创建一个案例文档,用于演示读取Word,案例文档内容如下:

可以看到文档一共有四行,两行标题以及两行正文。

import docx# 读取Word文档doc = docx.Document(r'案例.docx')

我们知道了读取Word每个paragraph段落和Run,那么如何读取完整的Word文本内容呢?这里,自定义一个函数将全部的paragraph段落内容存起来,每个paragraph段落之间用换行符\n隔开即可。

import docxdef getText(fileName):doc = docx.Document(fileName)TextList = for paragraph in doc.paragraphs:textList.append(paragraph.text)return '\n'.join(TextList)

我们调用该函数,可以得到:

fileName = r'案例.docx'print(getText(fileName))

标题1这是一个段落,有粗体和斜体大家好,我是才哥。标题2

当然了,这里读取后输出显示的文本不带有格式属性哈。

3. 写入Word文档

在写入Word之前,我们先简单了解下Word的一些格式规则。

毫不夸张的讲,把全局样式玩的明白的人蛮少的。这方面主要是正文样式与标题样式,如果玩得明白的话,其实设置好了之后几乎不需要再进行啥调整,全局格式都能自动设置与更新。就我所见的大多数朋友的文档,这方面基本达不到。(感觉会被爆锤~~)

比如,我们可以设置正文样式为 微软雅黑字体,字号12,缩进,间距等等;设置标题样式为 微软雅黑字体,字号14,删除段落后间距等等。

在我们Python处理Word的时候,段落样式可以应用于 Paragraph对象,字符样式可以应用于Run对象,链接的样式可以应用于这两种对象。可以将ParagraphRun对象的style属性设置为一个字符串,从而设置样式。这个字符串应该是一种样式的名称。如果style被设置为None,就没有样式与ParagraphRun对象关联。

当然,这里我们不展开介绍,就简单介绍Run对象上的字符属性。关于更多的介绍,我们放在第三期的详解Python写Word里

对于Run对象的字符text属性,都有3个状态:True(启用)、False(禁用)和None(默认)。

text属性有哪些?看下表:

属性描述
bold文本以粗体出现
italic文本以斜体出现
underline文本带下划线
strike文本带删除线
double_strike文本带双删除线
all_caps文本以大写首字母出现
small_caps文本以大写首字母出现,小写字母小两个点
shadow文本带阴影
outline文本以轮廓线出现,而不是实心
rtl文本从右至左书写
imprint文本以刻入页面的方式出现
emboss文本以凸出页面的方式出现

我们演示一下:

以上就是对段落的一些简单介绍及演示,接下来,我们来看看怎么创建并写入Word

要创建自己的.docx文件,就调用docx.Document,返回一个新的、空白的Word Document对象 。Document对象的add_paragraph方法将一段新文本添加到文档中,并返回添加的 Paragraph 对象的引用。在添加完文本之后,向 Document 对象的save方法传入一个文件名字符串,将 Document 对象保存到文件。

import docxdoc = docx.Documentdoc.add_paragraph('这是一个段落')doc.save('写入word.docx')

我们可以添加段落、设置段落文本样式等等,比如:

import docxdoc = docx.Documentp1 = doc.add_paragraph('这是一个段落')p1.add_run('加粗的一句话').bold = Truedoc.add_paragraph('这是第二个段落')doc.save('多段落.docx')

我们还可以添加一个段位,这个段落为标题样式,这里需要用到add_heading。它有两个参数,字符串表示文本内容,后面数字是标题层级。

import docxdoc = docx.Documentdoc.add_heading('标题',0)doc.add_heading('标题1',1)doc.add_heading('标题2',2)doc.add_heading('标题3',3)doc.add_heading('标题4',4)doc.save('标题.docx')

同样,我们还可换行与换页操作。

要添加换行符(而不是开始一个新的段落),可以在 Run 对象上调用 add_break方法,换行符将出现在它后面。如果希望添加换页符,可以将docx.text.WD_BREAK.PAGE作为唯一的参数,传递给add_break

import docxdoc = docx.Documentp1 = doc.add_paragraph('这是一个段落')p1.add_run('加粗的一句话').bold = True# 换行doc.paragraphs[0].runs[0].add_breakdoc.save('换行.docx')

有人会说,一般word里还有图片嘛,当然咱们也能搞定添加图片

有一个 add_picture方法,可以在段落末尾添加图像 。

import docxdoc = docx.Documentdoc.add_paragraph('这是一个段落,后面带图片')doc.add_picture('图片.png',width=docx.shared.Inches(3),height=docx.shared.Cm(4))doc.add_paragraph('这是第二个段落')doc.save('图片.docx')

以上就是本次的简单入门介绍。

其实Word文档各种样式设置,数据类型展示等等非常丰富,而Python-docx这个模块其实也能进行大多数的处理。不过,日常中我们用到的功能也没那么多,此部分留作后续详情讲解哈。

万水千山总是情,点个

    推荐阅读
  • 银耳的功效与作用(银耳的功效与作用禁忌和食用方法)

    含有大量胡萝卜素,有助于维持皮肤细胞组织正常机能,刺激皮肤新陈代谢,保持皮肤润泽细嫩。适宜与久病体虚或是虚劳的补益。含钙,钙是脑代谢不可缺少的重要物质。

  • 注销不了和平精英的账号怎么办(一言不合就注销账号)

    昨天晚上在玩《和平精英》的时候,开麦和队友说"你们先进圈,我打个电池",寝室一阵哄笑。作为最近刷屏各大网络媒体资讯的腾讯新手游,《和平精英》在一波又一波玩家的初体验之后,水涨船高。相比较彩蛋,在玩家看重的玩法方面,《和平精英》也交出了满意的答卷。最搞笑的是,有人把《和平精英》作为蹭流量的工具,还能不能愉快玩耍了?又说了,《和平精英》卸载量2.5亿。

  • 干松茸要不要冷藏(干松茸要冷藏吗)

    下面更多详细答案一起来看看吧!干松茸要不要冷藏松茸和其他的蘑一样,也是可以用来干制的,只需要将松茸切成片,然后放在阳光下晒干,再用干燥的盒子装好,与花椒和陈皮等吸水性好的食物放在一起,这样的保存方法可以保存1-3年不会变质。干松茸已经就是经过加工,干制,最后成型,自然也就不必担心会变质腐败,只需要找一个干燥并且避光的位置存放即可。

  • 最新款路虎汽车大全(最便宜路虎新款曝光)

    最新款路虎汽车大全复活的路虎卫士光芒四射,以致让同场发布的新款路虎发现神行黯然失色,不少人忽略了它的存在。而这次车型的改款,路虎似乎也发现了自己的不足,对新款发现神行来了一次全方位的升级。同时,前保险杠也作出了调整,虽然整体设计更为简约,但简约的设计却为新款发现神行营造出更高的视觉好感度。

  • 作文好词好句抄一下(背好词好句能写好作文吗)

    积累好词好句是无论什么时候老师都挂在嘴边的,这没有错只是我们用的方法不对。语言类的学习和表达都是以应用为目的的。即使把它背下来也很难做到无缝衔接,说不定前后还不通造成矛盾!最后让孩子去仿写这个是很关键的。用别人好的方法写出你生活中的内容,只有通过这样的方法才能把别人的好东西消化成为自己的。每个星期练习两篇,句子仿写应用多了,自然也就开窍了,写起文章来会轻松有趣很多!

  • 手机qq怎么转发消息记录 手机qq怎么转发聊天记录?

    手机qq转发消息记录的方法如下:1、打开手机QQ,选择需要转发聊天记录的好友。QQ是腾讯公司借鉴于ICQ开发的一款基于Internet的即时通信软件,于1999年2月推出,是中国的社交软件巨头。QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与多种通讯终端相连。

  • 包饺子擀饺皮用英语怎么说(饺子是dumpling那饺子馅)

    包饺子擀饺皮用英语怎么说VixueTalk英语口语头条号独家整理文章,未经允许请勿转载、二次修改或截取片段盗用,违权必究。说起饺子的英文,大多数伙伴一定首先想到dumpling,或者是它的汉语拼音Jiaozi了。dumpling其实在词典中,dumpling泛指蒸或煮的小面团,或水果馅的点心。像是粽子、包子、汤圆、青团等,其实都可以说成dumpling,它并不能专指饺子哦。boil表示烹饪方法中“煮”,尤其是用沸水煮。

  • 2022无锡鼋头渚樱花节景区可以飞无人机吗?

    2022无锡鼋头渚樱花节景区可以飞无人机吗?禁止私自携带无人机进入景区飞行。

  • 丈夫出轨被抓后妻子终于爆发(妻子出轨丈夫被拘留)

    同时制定了对国有企业职工买断工龄,统一解除劳动合同的政策。张薛民和李凌娟的女儿今年8岁,刚上小学一年级。能租到这套房子,还得益于李凌娟厂里的人事部长刘胜。李凌娟向马路上一招手,一辆出租车停在面前,夫妻俩把刘胜扶到车上送到了家。夫妻俩一夜无话。张薛民似乎感觉妻子有些不对劲,每次他要求与妻子温存的时候,李凌娟都会找理由拒绝。张薛民经常用醉酒解愁,如此一来,夫妻俩更疏远了。

  • 陈亮跟廖嫣然是什么电视剧(下面为大家解答)

    张继红在生下女儿之后不幸离世,临终前将丈夫廖文辉和女儿廖嫣然托付给江月明,从此方皓和廖嫣然的命运紧紧连接在一起。二十年后,已长大成人的方皓就读于北京某医科大学。青梅竹马的廖嫣然也追随其来到北京,方皓同父异母的弟弟方子杰随即赶来。与此同时,感情失意的廖嫣然在工作上努力认真并小有成就,面对方子杰始终如一的不懈追求,最终被方的真诚所打动,两个人终于走在了一起。