python-docx初探🚀
在项目中需要用到使用代码来编写一些结构化的文档,所以这里就需要涉及到一些需要用代码写world的一些工作,经过简单了解,python操作world最主要使用的就是python-docx文档,所以这次就先学一下这个库的操作,根据官方文档先简单学一些基础知识初步了解下。
官方文档网址:https://python-docx.readthedocs.io/en/latest/index.html
文章目录
- python-docx初探🚀
- 1.生成一个空白的world
- 2.插入一段文字
- 3.添加一个标题
- 4.换页
- 5.插入表格
- 结束
1.生成一个空白的world
首先我发现文档里的教程省略了这一步,也就是在官方文档的教程中默认都是已经自己在外部建好文档,然后进而使用代码读取操作的,在实际操作中我发现,应该还是需要自己动手生成空白文档这一步,才能完整之后想要实现的之后想要自动结构化的操作,生成一个空白文档的代码如下。运行之后会在相对路径下生成一个example.docx的文件夹
from docx import Document
# 实例化doc对象
document = Document()
# 文件路径
file_path = 'example.docx'
# 保存doc文档
document.save(file_path)
运行代码之后会在相对路径下生成一个文档,打开之后是一个空白文档(上面的灰色文字是WPS的AI功能提示,内容还是空白的)
2.插入一段文字
写入一段文字需要用到add_paragraph
方法,生成一个空白文档插入一段文字,然后保存代码如下,其中paragraph
是一个段落返回对象,之后可以通过这个对象完成一系列操作,如果改动段落的一些字体加粗等属性,在该段上下插入新的段落等等,运行之后打开world可以看到在第一行输出了我们指定的一段文字。
from docx import Document
# 实例化doc对象
document = Document()
# 文件路径
file_path = 'example.docx'
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
# 保存doc文档
document.save(file_path)
add_paragraph
的本质是在文档的末尾部分追加一段文字,在官方例程中想在段落前后插入一段文字该如何操作呢?,例如我们要在刚才加入的段落前面插入一段文字。
from docx import Document
# 实例化doc对象
document = Document()
# 文件路径
file_path = 'example.docx'
# 插入一段文字
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
#在paragraph这段文字的上方再插入一段文字
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')
# 保存doc文档
document.save(file_path)
运行结果如下:
3.添加一个标题
python-docx还开放了插入各个级别的标题的API,插入一个标题的代码如下
from docx import Document
# 实例化doc对象
document = Document()
# 文件路径
file_path = 'example.docx'
# 插入一段文字
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
# 在paragraph这段文字的上方再插入一段文字
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')
# 插入一个标题(默认一级标题)
document.add_heading('The REAL meaning of the universe')
# 插入一个二级标题
# document.add_heading('The role of dolphins', level=2)
# 保存doc文档
document.save(file_path)
4.换页
在插入标题和文字之后官方文档中还介绍了换页,也就是如果我们想另启一页的的话,可以使用add_page_break
API来进行换页的操作。
from docx import Document
# 实例化doc对象
document = Document()
# 文件路径
file_path = 'example.docx'
# 插入一段文字
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
# 在paragraph这段文字的上方再插入一段文字
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')
# 换页
document.add_page_break()
# 插入一个标题(默认一级标题)
document.add_heading('The REAL meaning of the universe')
# 保存doc文档
document.save(file_path)
5.插入表格
出了文字之外还有的就是插入表格,python-docx库有一个table = document.add_table(rows=2, cols=2)
的API通过这个API可以插入一个两行两列的表格,默认情况下表格是是无边的,生成表格并在第一行第二列插入一段文字的代码如下。
from docx import Document
# 实例化doc对象
document = Document()
# 文件路径
file_path = 'example.docx'
# 插入一个两行两列的表格
table = document.add_table(rows=2, cols=2)
cell = table.cell(0, 1)
cell.text = 'parrot, possibly dead'
# 保存doc文档
document.save(file_path)
结束
实际用下来之后发现还是有不少问题,例如其实想用代码改格式是一个非常麻烦的事情,例如python-docx中甚至无法通过代码来设置表格的边框的颜色,根据Chat-GPT4给我的解释是说,这个python-docx主要关注的是内容,当然还有很多其他的内容可以在文档中查到,总之,python-docx
相对来说只适合应用于一些小任务,功能并不强大。