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

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

万水千山总是情,点个

    推荐阅读
  • 湖北特产精品红菜苔(我国的特产蔬菜红菜薹)

    再加上雨雪灾害给运输增加了难度,导致了运输成本的上涨,这也进一步提升了蔬菜的价格。现在红菜薹在南方地区,基本上是一种家喻户晓的蔬菜。早期上市的红菜薹,售价一般不低,普遍都要10元左右一斤。并且红菜苔有着较强的耐寒能力,即便是降雪也能生长,这个期间的红菜苔品质更高。前几年武昌地区的红菜苔更是卖到了100多元一斤的“天价”,让红菜薹一下子名声大振了。

  • 下拉框怎么做叁金iPhone

    对着镜子试一试,尝试找到最合适同时也不轻蔑的眼睛微笑,以后照做就可以了。Pose,也就是说的姿势,影响人物的立体感和体型观感。正确的方式肩膀与相机构成夹角大约30度,头部轻微转向镜头,下巴略微抬起。笑久了脸部肌肉会发僵,笑容看上去就越假。拍合照的时候这种状况可能会遇到比较多,倒数时有些人从“3”就开始保持微笑,一直绷到按下快门。别紧张,最后一刻对着镜头笑一个就可以了,或者喊茄子。

  • 房屋共有权人什么意思(房屋共有权人意思简述)

    跟着小编一起来看一看吧!房屋共有权人什么意思房屋共有是指由两个或两个以上的公民、法人共同拥有该房屋的权利和应承担的义务。房屋共有权人则为拥有此权的人。

  • 西兰花怎么炒好吃简单(要炒几分钟呢)

    西蓝花掰成小块,茎秆切片,洗净,锅中烧沸,炒一下;,我来为大家讲解一下关于西兰花怎么炒好吃简单?跟着小编一起来看一看吧!西兰花怎么炒好吃简单西蓝花掰成小块,茎秆切片,洗净,锅中烧沸,炒一下;锅烧热后,倒入植物油,把切好的肉加入点淀粉后煸炒下;炒3-5分钟后,肉表面金黄色,加入蒜,姜,胡萝卜,进行煸炒;加入西兰花,翻炒,放入适量盐,生抽,耗油,大火进行翻炒。6分钟即可出锅。

  • 如何提高理解能力(怎样提高理解能力)

    下面内容希望能帮助到你,我们来一起看看吧!如何提高理解能力提高理解能力要学会在不同的语境下,同一句话要有不同的意思;要对一个人的思维表达习惯去理解字面意思;可以多与不同年龄段的人去交流,多了解一下对方经历和生活方式;多阅读一些书籍;可以通过自身的生活经历来总结一些生活经验,从而提升自我认知能力。理解能力是指一个人对事物乃至对知识的理解的一种记忆能力。

  • 零基础制作动画的方法(自从知道这4个秘诀)

    最近后台经常收到小伙伴们的问题,怎样才能做出让人眼前一亮的动画视频呢?目前主流的配色方案有下面几种:同类色搭配,即画面主体选用同一配色,但通过不同的明暗程度来进行搭配。邻近色视频模板互补色搭配,通过一主一次的方式进行组合。互补色视频模板这里来画君为大家整理了几种高级配色的视频模板,方便大家直接使用。海量正版素材而且最主要的是,所有的素材均为正版可商用,完全不需要担心版权问题。

  • 爸爸过世怎样告诉成年孩子(怎样对年幼的孩子说)

    怎样对年幼的孩子说孩子爸爸因病去世后,5岁的幼子时常问她要爸爸,他时常哭着说他想爸爸了,她一边忍着内心的伤痛一边想着怎样给他一个合理的解释于是她骗他说,爸爸去很远的地方打工了,爸爸很爱他,赚钱后会给他买许多玩具、许多好。

  • 答谢中书书翻译及注释(答谢中书书翻译及注释欲)

    《答谢中书书》翻译山川景色的美丽,自古以来就是文人雅士共同欣赏赞叹的。《答谢中书书》原文答谢中书书南朝·陶弘景山川之美,古来共谈。晓雾将歇,猿鸟乱鸣;夕日欲颓,沉鳞竞跃。自康乐以来,未复有能与其奇者。以骈文的主要特征来看,《答谢中书书》或许不是很严饬的。《答谢中书书》作者介绍陶弘景,南朝齐梁时期道教思想家、医学家。著有《本草经集注》《真诰》等。

  • 汽车敲缸是什么原因造成的 轿车敲缸什么原因

    发动机爆震的原因有很多,下面是一些有代表性的原因。发动机气缸润滑不良。此时,由于油压低或机油粘度高,气缸壁无法得到充分润滑,导致发动机爆震。最常见的声音是发动机在低温下工作时,爆震声比较明显,尤其是发动机怠速时,随着发动机舱温度的升高,异响会逐渐减少,因为随着温度的升高,活塞的间隙会逐渐减小,所以噪音也会降低。所以一旦发现汽车异常,一定要及时处理。

  • 电鳗在空气中放电会电死自己吗(两只电鳗对着放电)

    长久以来,科学家们一直认为电鳗被归为单类,该物种是该属中唯一的一种。其中电量最大的当属沃尔塔电鳗,它们最高可释放出860伏的高压。为了能够检测隐藏的猎物,电鳗会释放低压探查周围环境,大部分鱼类在受到低压电击后,身体会不由自主出现轻微的抽搐。配合上电鳗对水运动极度敏感,水流的轻微波动让电鳗很快的锁定猎物的位置,并在10毫秒内释放强烈的高压,让猎物麻痹无法逃离。由此可见,电鳗之间放电,并不会被电死。