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

如何用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这个模块其实也能进行大多数的处理。不过,日常中我们用到的功能也没那么多,此部分留作后续详情讲解哈。

万水千山总是情,点个

    推荐阅读
  • 梦见别人怀孕生子(梦见别人怀孕生子意思是什么)

    职员梦见别人怀孕生子,你认为你不应该安于现状,觉的自己才华没有表现出来,得不到好的机会表现自己。商人梦见别人怀孕生子,生意受到他人打击,很可能自己的投资变成了他人的利益。少女梦见别人怀孕生子,渴望得到爱情,希望能够有人爱护自己,但是现实不如意,往往得不到好的归宿。老人梦见别人怀孕生子,家人能够平平安安,并且能够享受天伦之乐,会子孙满堂。

  • 护肤品oem加工厂哪里的好(OEM护肤品加工厂的选择标准是什么)

    公司的设计团队走访世界各地,密切把握潮流风向,新产品的研发和设计成为行业佼佼者。公司具备自由进出口资质,并获得多国的自由销售证书。成功协助国内外上百个化妆品品牌的面市,并进入欧美的大型商业连锁销售,取得了良好的市场反响和持续的合作。严格执行化妆品105项及国际标准生产,严密的质量检验监测管理系统,安全为先、质量为先、诚信为先是公司秉承的经营理念。

  • 锦心似玉一共多少集(锦心似玉一共有几集)

    下面更多详细答案一起来看看吧!锦心似玉一共多少集《锦心似玉》一共有45集。《锦心似玉》是由温德光、杨小波执导,钟汉良、谭松韵领衔主演,何泓姗、唐晓天主演的古装剧。该剧改编自吱吱小说《庶女攻略》,讲述了明朝中期永平侯大将军徐令宜和庶女十一娘先婚后爱、携手成长的励志爱情故事。该剧于2021年2月26日在腾讯视频首播,泰国、日本、韩国、菲律宾、印尼、西班牙、越南同步播出。

  • lol西部魔影皮肤什么时候结束(西部魔影新皮肤上线)

    这几款皮肤中,特效最有意思的应该是图奇了,在他开大后,会长出一双黑色的翅膀。这个改动会在12.10版本正式上线,这或许会在一定程度上改变目前整个英雄联盟的伤害输出体系。

  • 遥望星空作文(遥望星空作文范文)

    如今,高速发展的世界让“快节奏”逐渐成为生活的代名词。当月亮变成一镰弯月时,又好似一个诚挚微笑,昭示着宇宙对人类的友好。那点点繁星犹如被冲上沙滩的贝壳,只不过在月光的洗涤下变得更加璀璨夺目,似一个个调皮的小孩,争相炫耀着自己手中最闪亮的那一颗。看那繁星点点,让我不由自主的想到了人生,其实那一粒粒璀璨夺目的“贝壳”不就如同那许许多多的人生一样吗?

  • pep六年级英语上册一单元知识总结(人教PEP版英语六年级上册期中知识点)

    而走路用“on”例如onfoot.2.国家名字,地方名字第一个字母要大些:例如:Canada加拿大,China中国,America美国,England英国,Australia澳大利亚3.频度副词是表示做的次数多少的词语。这两个词是一对反义词。这大部分的国家都是靠右行驶的:driversdriveontherightsideoftheroad.记住EnglandandAustralia,driversdriveontheleftsideoftheroad.英国和澳大利亚,司机是靠左行驶的。

  • 斯玛特为什么是最佳防守球员(最值得敬佩的运动员)

    多哈世锦赛男子100米决赛的赛场上科尔曼以9秒76获得冠军,贾斯汀·加特林跑出9秒89获得亚军。贾斯汀·加特林是一个饱受争议的运动员,也是田径历史上唯一一个小半个职业生涯都处在禁赛中的运动员。2001年加特林被查出服用禁药,禁赛两年。贾斯汀·加特林也是唯一复出后仍能保持禁赛前成绩的运动员,在博尔特时代也能和其一比高下。赛后35岁老将加特林用跪拜的方式致敬老对手“博尔特”。世间很难再有第二个加特林,向传奇老将致敬!

  • 邹忌讽齐王纳谏有哪些启示(邹忌讽齐王纳谏)

    《战国策》为西汉刘向编订的国别体史书,原作者不明,一般认为非一人之作。西汉时期,刘向进行整理后,删去其中明显荒诞不经的内容,按照国别,重新编排体例,定名为《战国策》。此所谓战胜于朝廷。城北徐公,远近闻名,是齐国最美的男子。田齐桓公去世后,齐威王即位。齐威王马上来了兴趣,立即下令召见。只见一位身材修长,相貌堂堂的男子腋下夹了把琴,匆匆进了大厅。邹忌提出了一整套治国安邦的措施。

  • 33w原装快充充电器(高性能的移速充电器)

    每个充电头的证明都印有移速的品牌Logo和PD20W的标识。包装盒里仅有移动电源本体,和一条短短的Type-C充电线。3移速Lighting转Type-C的数据线,适用于苹果的各种设备,背面也是印有参数规格和防伪标签。这条Lighting转Type-C的数据线,长1.2米,支持2.4A电流。手上的电子设备挺多的,先给两部手机和两个移动电源充满电。

  • 正宗炝锅面条最好吃的家常做法(大厨教你炝锅面)

    炝锅面是一道家常面食,以面条为主要食材,配上猪肉,豆芽,青菜,小葱等辅料制作而成,面条劲道,口味鲜香,越吃越过瘾。首先我们准备一下食材:1.准备二细的面条一斤左右备用。