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

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

万水千山总是情,点个

    推荐阅读
  • 宝宝辅食丝瓜的做法(爱丝瓜的朋友一起跟着做吧)

    下面希望有你要的答案,我们一起来看看吧!宝宝辅食丝瓜的做法丝瓜面用料:丝瓜一根、蟹味菇50g、鲜切面一人份、盐1小匙。丝瓜切成小滚刀块,蟹味菇切掉末端。锅烧热下少许油,下入一片姜炒香,接着入蟹味菇和切好的丝瓜翻炒,加盐调味让丝瓜出水,炒至丝瓜翠绿炒熟即可。另起锅烧开一锅水,下鲜面煮熟捞出,装入碗中加适量煮面汤,然后将炒好的丝瓜浇在上面做卤即可。

  • 锅巴土豆的家常做法(锅巴土豆的做法)

    锅巴土豆的家常做法材料:土豆250克、小辣椒两根调料:盐3克、葱花5克、辣椒粉5克、孜然粉3克、花椒粉2克。土豆洗净去皮,切成块后盖上保鲜膜,入蒸锅蒸熟,小米辣用剪刀剪成碎粒。炒锅中放入油,烧至六成热,放入土豆用小火煸炒,一直炒到外皮变得焦黄,香脆。土豆煎得差不多的时候,将锅里多余的油倒出不用。将除葱花与小辣椒外的所有调料放入炒匀后即可出锅,装盘时在表面撒上葱花与小米辣就可以食用了。

  • 汽油真假的鉴别(如何辨认汽油的真假)

    有的人甚至去买私人的汽油,殊不知私人汽油卖假汽油的比较多,今天小德就跟大家聊一聊真假汽油。普遍的小毛病便是毁坏车子发动机、过滤器及其喷油器,而采用时间久了以后,车子运行都成为了难题。上面介绍的两种汽油,便是非常普遍的“假汽油”,尽管也能用,但是也很伤车。那样如果你实在记不得假汽油怎么区分的话,还可以记一下假汽油该怎么分辨。以上便是小德整理的真假汽油的相关资料,希望对大家有所帮助。

  • 苹果手机录音删了怎么恢复(苹果手机录音误删如何恢复)

    苹果手机录音删了怎么恢复删除的录音被被转移到“语音备忘录”列表的“最近删除”文件夹中,默认该录音会保留30天,想要恢复删除的录音,可以通过最近删除文件夹找到需要恢复的录音点击恢复。通过苹果手机的设置->语音备忘录->清除已删除的项目可以修改录音在删除之后的保留时间,大家可以按照自己的需要来修改保存时间,推荐选择7天后或30天后,让误删除的语音备忘录可以有时间恢复。

  • 今年头伏是哪一天(入伏7月16日)

    今年头伏是哪一天今年头伏是7月16日。“夏至三庚数头伏”,这是确立初伏的依据。这里的“庚日”是指古代的“干支纪日法”中带有“庚”字头的那一天。第四个庚日到第五个庚日为中伏,立秋后的第一个庚日到第二个庚日为末伏。每一个庚日相隔10天,中伏天数不固定,夏至到立秋之间有4个庚日时,中伏为10天,有5个庚日时中伏为20天。

  • 孕妇有鼻炎怎么治 孕妇鼻炎咋办

    不当用药造成不可预测的后果孕妇患了鼻炎,如果服用药物不当,后果难以预料。因为目前治疗鼻炎的药物大多含有麻黄素,孕妇服用了这些药物,药物会通过胎盘进入胎儿体内,很可能造成流产或导致胎儿发育畸形。孕妇鼻炎的原因这是因为女性鼻黏膜对雌激素反应较敏感。

  • 李现电视剧片酬(李才和徐子雯相认)

    结果婚礼当天,刘一手因为非法集资被警察带走,别墅也被查封。马得路和小白投资了刘一手的日洛集团,这意味着他们的资金全都打水漂,二人闻讯当场晕了过去。李貌向徐子雯讲述她的设计初衷,徐子雯特别欣赏李貌的设计,当场宣布新围城工作室中标,马上去美国考察两周。法院开庭审理此案件,李貌上交了家里的监控视频还尚晋清白。

  • 洗碗布清洗妙招(有下面两个方法)

    在锅里烧好热水,等水开了之后,将洗碗布放入锅里,接着加入两勺食用碱,家里有小苏打也可以用它来代替。然后盖上盖子继续煮10分钟。碱具有杀菌消毒和清除油污的作用,在开水里面高温消毒10分钟,能够杀死洗碗布上大量的细菌。浸泡好之后,用清水洗净晾晒在通风处即可。大家每次洗完碗之后,尽量让洗碗布风干或者晒干,这样能够减少细菌的繁殖。并且定期用以上2个方法为洗碗布杀菌或者是勤更换洗碗布。

  • 猪笼草的家庭养殖方法及注意事项(猪笼草的家庭养殖方法及注意事项的介绍)

    但气温过低时,猪笼草停止生长,冬季为避免猪笼草受冻,要做好保护措施,保证室内温度不低于10℃。在夏天时注意防晒,通常的做法是搭遮光网。温度较低时,适当减少浇水次数,保持土壤湿润即可。适当的施加有机肥,不过施肥后要及时浇水。不过猪笼草要养伤几年才会开花,不用担心。

  • 凌霄殿是什么地方(凌霄宝殿是干什么的地方)

    凌霄宝殿是天庭宝殿之首,玉帝面见朝臣的地方。是进入南天门后的第一殿。玉皇大帝被视为众神之领袖,在道教神阶中威望极高,神权最大。其居住昊天金阀弥罗宫,相传天庭位于三十六重天之中的最高天位,最高处乃是弥罗宫。