Python操控Word--python-docx(1)-修改字体、英文字符

文章目录

    • 1.修改文档字体
      • 1.1设置段落样式
      • 1.2自定义设置句子
    • 2.中英引号更换

pip install python-docx

1.修改文档字体

1.1设置段落样式

# 创建自定义段落样式(第一个参数为样式名, 第二个参数为样式类型, 1为段落样式, 2为字符样式, 3为表格样式)
UserStyle1 = document.styles.add_style('UserStyle1', 1)
# 设置字体尺寸
UserStyle1.font.size = Pt(40)
# 设置字体颜色
UserStyle1.font.color.rgb = RGBColor(0xff, 0xde, 0x00)
# 居中文本
UserStyle1.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 设置中文字体
UserStyle1.font.name = '微软雅黑'
UserStyle1._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')

1.2自定义设置句子

# 使用自定义字符样式
document.add_paragraph('').add_run('正月里采花无哟花采,二月间采花花哟正开,二月间采花花哟正开。三月里桃花红哟似海,四月间葡萄架哟上开,四月间葡萄架哟上开。', style = UserStyle2)

# 设置粗体字
document.add_paragraph('设置粗体字:').add_run('粗体字').bold = True

# 设置斜体字
document.add_paragraph('设置斜体字:').add_run('斜体字').italic = True

# 设置字号50
document.add_paragraph('设置字号50:').add_run('50').font.size = Pt(50)

# 设置字体颜色为 af2626
document.add_paragraph('设置字体颜色:').add_run('颜色').font.color.rgb = RGBColor(0xaf, 0x26, 0x26)

具体参考文章。

2.中英引号更换

使用正则表达式'"(?:[^"])*"'

?::为了取消圆括号模式配置过程的缓存,即不需要遇到一个符合的就结束匹配
[^"]:表示匹配的内容不能是 ",以避免贪婪匹配,即避免匹配成 从第一个 " 开始一直到最后一个 "结束
整体的意思是 配置两个 " 之间的内容,且内容中不包括 "

具体实现代码:

from docx import Document
import re

doc = Document(r"D:\论文.docx")
restr = '"(?:[^"])*"'

for p in doc.paragraphs:
    matchRet = re.findall(restr, p.text)
    for r in matchRet:
        p.text = p.text.replace(r, '“' + r[1:-1] + '”')
doc.save(r'D:\论文_修正.docx')
引入 Document 类,和正则表达式模块
打开目标文档,字符串前的 r 表示取消字符串转义,即按原始字符产来解释
循环文档的 段落(paragraph),对每个段落,用正则表达式进行匹配
循环对于匹配到的结果,将前后引号,换成中文引号,并替换 段落(paragraph)的 text;其中 r[1:-1] 表示截取从第二个位置(第一个位置是 0)到倒数第二个位置截取字符串,刚好去掉前后引号
最后另存文档

具体参考文章。

python-docx还有丰富的功能(表格、图片、格式等),在文中的2篇参考文章中大家可以根据需求继续深入了解~

你可能感兴趣的:(Python,Python处理Word,python,正则表达式)