Python怎么修改词文档样式

  介绍

这篇文章主要介绍了Python怎么修改词文档样式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

需求描述

手上现有若干份财务分析报告的词文档,如下:

 Python怎么修改词文档样式

每一份词文档中的内容如下:

 Python怎么修改词文档样式

为了方便后续审阅,需要将所有文档中所有含有资金的语句标红加粗,如图所示

 Python怎么修改词文档样式

步骤分析和前置知识

为了解决这个需求简单复习一下相关知识.Word文档一般而言由文档(文档)-段落(段)——文字块(运行)三级结构组成:

 Python怎么修改词文档样式

从需求反馈中可以看的出,本质上我们需要做的就是对所有含有资金的文字块跑进行样式调整

因此,本需求的逻辑如下:

1。创建一个空文件夹(用于存放修改后的财务报告,避免直接对原文件修改)
2。通过一滴获取目标文件夹下的所有字路径
3。利多克斯用模块对每个词文档遍历,并获取包含特定词的文字块
4。对文字块进行样式修改

代码实现

首先导入需要的库并设置目标文件夹路径

得到docx  import 文档   得到docx.shared  import  RGBColor, Pt,厘米   import 操作系统   import 水珠      #,此处更换创建文件夹的路径   时间=mkdir_path  " # 39; C: \ xxx \ \用户new_dir& # 39;      #,此处更换所有文件所在的位置   file_path =, " # 39; C: \ xxx用户\ \ & # 39;

操作系统和一团我们都很熟悉,这里简单介绍一多克斯下模块这是一个非标准库,在命令行中我们需要输入以下命令安装:

pip  install  python-docx

尤其要注意安装时候输入的是python-docx,而实际调用时多克斯为

实例化具体的词文档代码为:

得到docx  import 文档   时间=wordfile 文档(路径)

如果不指定路径则为创建新的词文档,这点跟操作Excel的openpyxl不太一样,有机会再做介绍。

现在我们建立文件夹存放新生成的文件,首先判断文件夹是否存在,不存在时再运行操作系统。mkdir避免报错

if  not  os.path.exists (mkdir_path):   ,,,os.mkdir (mkdir_path)

接着遍历词文档,利用一滴模块的通配符,框架如下:

for  file 拷贝glob.glob(时间+ file_path  & # 39;/*。docx # 39;):   ,,,通过

根据三级结构,一个文档文档有一个或多个段落个段落,一个段落段有一个或多个文字块,合起来代码为:

for  file 拷贝glob.glob(时间+ file_path  & # 39;/*。docx # 39;):   ,,,docx =,文档(文件)   ,,,for  paragraph 拷贝docx.paragraphs:   ,,,,,,,for  run 拷贝paragraph.runs:   ,,,,,,,,,,,通过

最后我们针对特定词修改样式,遍历到文字块后就可以做判断了

,,,,,,,,…   ,,,,,,,for  run 拷贝paragraph.runs:   ,,,,,,,,,,,if  & # 39;资金& # 39;,拷贝run.text:   ,,,,,,,,,,,,,,,run.font.bold =, True  #,加粗   ,,,,,,,,,,,,,,,run.font.color.rgb =, RGBColor(0, 255,, 255), #,设置字体颜色   ,,,,,,,#,最后切记保存   ,,,,,,,docx.save(时间+ mkdir_path  & # 39;/& # 39;, +, os.path.basename(文件)

当然,除了修改字体颜色和加粗之外,还支持其他样式的设置,以下列出常用的作为参考:

#,加粗   run.font.bold =,真的   #,斜体   run.font.italic =,真的   #,下划的线   run.font.underline =,真的   #,删除线   run.font.strike =,真的   #,字号   run.font.size =, Pt (20)   #,阴影   run.font.shadow =,真的   #,字体颜色   时间=run.font.color.rgb  RGBColor (255, 0, 255)

至此,整个需求就顺利结束了,附上完整代码:

得到docx  import 文档   得到docx.shared  import  RGBColor, Pt,厘米   import 操作系统   import 水珠      mkdir_path =, " # 39; C: \ xxx \ new_dir) & # 39;   if  not  os.path.exists (mkdir_path):   ,,,os.mkdir (mkdir_path)      时间=keyword  & # 39;资金& # 39;      时间=file_path  " # 39; C: \ \用户xxx # 39;      for  file  glob.glob拷贝(file_path  +, & # 39; \ *。docx # 39;):   ,,,docx =,文档(文件)   ,,,for  paragraph 拷贝docx.paragraphs:   ,,,,,,,for  run 拷贝paragraph.runs:   ,,,,,,,,,,,if  keyword 拷贝run.text:   ,,,,,,,,,,,,,,,run.font.bold =,真的   ,,,,,,,,,,,,,,,run.font.color.rgb =, RGBColor (255, 0, 0)      null

Python怎么修改词文档样式