python-docx安装及文件新建、修改

python-docx库安装经历

1)cmd内输入

pip3 install python-docx

发现warning,显示pip版本过低导致安装第三方库失败,则先升级pip

python -m pip install --upgrade pip

升级后再进行安装,显示安装成功

2)后在 jupter notebook输入

from docx import Document

显示No module named 'docx'的报错信息,则在jupter notebook页面内输入

!pip install python-docx

一般情况下,jupter notebook内使用pip安装语句无误但报错时在pip前添加一个“ !”可以解决该类问题。

新建与读取、修改文档

首先导入库

from docx import Document

新建文件

doc_1 = Document()
# 保存文件(当前目录下)
doc_1.save('文件名')

需要注意的是在新建文件后保存文件时,相同路径下若文件名重复则会报错

读取已有文件

doc = Document(r'路径')

修改文件

修改文件时首先需要知道该文件原有排版信息,可以使用document.paragraphs方法读取内容,但不能读取表格和图片,如果需要查看图片和表格,可以使用 document.tablesdocument.inline_shapes方法分别读取图片和表格。

for i,parag in enumerate(doc.paragraphs):   # doc为上面实例化的命名
    print('段落{}'.format(i),parag.text)

 同样也可以查询之前原有样式,在修改或添加时方便引用原有格式

for s in doc.styles:
    print(s.type,s.name)
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用python-docx模块中的`docx`和`enum`模块,以及`re`模块来实现该功能。 首先,使用`docx.Document()`来打开需要操作的docx文件,并遍历文档中的所有段落和表格单元格。对于每个段落或单元格中的文本,使用正则表达式匹配关键词,并将匹配到的文本的字符格式设为标黄。 下面是一个示例代码,其中关键词为"python": ```python import docx from docx.enum.text import WD_COLOR_INDEX import re document = docx.Document('example.docx') # 打开docx文件 pattern = re.compile(r'python', re.I) # 定义关键词正则表达式 for paragraph in document.paragraphs: # 遍历所有段落 for match in pattern.finditer(paragraph.text): # 匹配关键词 start = match.start() end = match.end() run = paragraph.add_run() # 新建字符格式 run.text = paragraph.text[start:end] # 设置文本 run.font.highlight_color = WD_COLOR_INDEX.YELLOW # 设置标黄 for table in document.tables: # 遍历所有表格 for row in table.rows: for cell in row.cells: # 遍历所有单元格 for paragraph in cell.paragraphs: # 遍历单元格中的所有段落 for match in pattern.finditer(paragraph.text): # 匹配关键词 start = match.start() end = match.end() run = paragraph.add_run() # 新建字符格式 run.text = paragraph.text[start:end] # 设置文本 run.font.highlight_color = WD_COLOR_INDEX.YELLOW # 设置标黄 document.save('example_highlighted.docx') # 保存修改后的docx文件 ``` 运行完毕后,会生成一个新的docx文件"example_highlighted.docx",其中所有包含关键词"python"的文本都会被标黄。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值