使用Python docx修改word关键词颜色的操作

 更新时间:2021年03月08日 08:39:54   作者:吕景楠  
这篇文章主要介绍了使用Python docx修改word关键词颜色的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

需求:

在刷word题库的时候,答案就在题目下方,干扰复习效果,将答案字体变成白色,查看答案的时候只需要将答案背景刷黑

转换需求:

在word中找到关键字“答案”将其后面的信息改变颜色为白色

由于第一次使用 import docx,最初想按照如上思想实现比较麻烦,后整理思路,将题库保存为txt,逐条读取转存入word,利用分割函数对关键字进行分割,关键字后面的信息即为答案改变颜色,效果和需求一致,只是新建了文件

实现代码:

import os
import re
import docx
from docx.shared import RGBColor#设置字体
from docx import Document
from docx.shared import Pt#设置字体
from docx.oxml.ns import qn#设置中文字体
f = open("test.txt","r")#将文档和python放在一个目录下无需复杂的路径
i=0
document = Document()#新建word
p = document.add_paragraph('')#新建段落,这句话放在循环外面可以减少空行
while i<3190:
	content = f.readline()
	#print(content)
	
	if content.find('答案')!=-1: #如果该行有关键字“答案”就以关键字为分界进行分割
		pt = r'(答案)'
		res = re.split(pt, content)#分割
		#print(res[0],end=' ')
		#print(res[1],end=' ')
		#print(res[2])
		
		#add_run在同一段添加内容
		run = p.add_run(res[0])#输入关键字之前的字符
		run.font.name=u'宋体' #设置插入的字体
		run.font.size = Pt(15)
		r = run._element
		r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
		run = p.add_run(res[1])#输入关键字
		run.font.name=u'宋体' #设置插入的字体
		run.font.size = Pt(15)
		r = run._element
		r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
		run = p.add_run(res[2])#输入关键字之后的字符
		run.font.name=u'宋体' #设置插入的字体
		run.font.size = Pt(15)
		r = run._element
		r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
		#设置关键字之后也就是答案的字体颜色,这里设置为白色
		run.font.color.rgb = RGBColor(250,250,250)
	else:
		run = p.add_run(content)#如果该行没有关键字“答案”则直接输入word
		#print(content)
		run.font.name=u'宋体' #设置插入的字体
		run.font.size = Pt(15)
		r = run._element
		r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
	i+=1
document.save('路线1.docx')#关闭保存word
f.close() #关闭TXT

需求本来挺简单,由于初次使用DOCx,绕个小弯,做个记录

补充:如果有多个关键字,可以用下面的代码哦

for one_key in keys:
 if content.find(one_key) != -1:
  p = document.add_paragraph()
  pt = r'({})'.format(one_key)
  res = re.split(pt, content)
  for one_split in res:
   run = p.add_run(one_split)
   run.font.name = u'宋体'
   r = run._element
   r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
   if one_split == one_key:
    run.font.color.rgb = RGBColor(220, 20, 60)
    run.font.bold = True
  break
else:
 p = document.add_paragraph(u'{}'.format(content))

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • 浅谈图像处理中掩膜(mask)的意义

    浅谈图像处理中掩膜(mask)的意义

    今天小编就为大家分享一篇浅谈图像处理中掩膜(mask)的意义,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python人工智能之混合高斯模型运动目标检测详解分析

    Python人工智能之混合高斯模型运动目标检测详解分析

    运动目标检测是计算机视觉领域中的一个重要内容,其检测效果将会对目标跟踪与识别造成一定的影响,本文将介绍用Python来进行混合高斯模型运动目标检测,感兴趣的朋友快来看看吧
    2021-11-11
  • 如何将自己的python库打包成wheel文件并上传到pypi

    如何将自己的python库打包成wheel文件并上传到pypi

    这篇文章主要介绍了如何将自己的python库打包成wheel文件并上传到pypi,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 使用Python测试Ping主机IP和某端口是否开放的实例

    使用Python测试Ping主机IP和某端口是否开放的实例

    今天小编就为大家分享一篇使用Python测试Ping主机IP和某端口是否开放的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python3获取电脑IP、主机名、Mac地址的方法示例

    Python3获取电脑IP、主机名、Mac地址的方法示例

    这篇文章主要介绍了Python3获取电脑IP、主机名、Mac地址的方法,结合具体实例形式分析了Python3基于socket与uuid模块针对电脑的IP、主机名、Mac地址等信息的读取操作相关实现技巧,需要的朋友可以参考下
    2019-04-04
  • Python深度学习理解pytorch神经网络批量归一化

    Python深度学习理解pytorch神经网络批量归一化

    这篇文章主要是Python深度学习篇,通过示例的详解让大家更好的理解pytorch神经网络批量归一化,有需要的的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • Python中yield返回生成器的详细方法

    Python中yield返回生成器的详细方法

    这篇文章主要介绍了Python中的yield返回生成器,生成器是Python编程进阶中的重要知识点,需要的朋友可以参考下,希望能够给你带来帮助
    2021-11-11
  • 基于Python的EasyGUI学习实践

    基于Python的EasyGUI学习实践

    这篇文章主要介绍了基于Python的EasyGUI学习实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python 实现矩阵上下/左右翻转,转置的示例

    python 实现矩阵上下/左右翻转,转置的示例

    今天小编就为大家分享一篇python 实现矩阵上下/左右翻转,转置的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • PyQt5实现界面(页面)跳转的示例代码

    PyQt5实现界面(页面)跳转的示例代码

    这篇文章主要介绍了PyQt5实现界面跳转的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论