使用文档
python-docx 可用来创建新文档和修改现有文档。
打开文档
最简单的开始就是打开新文档,不用指定文件。
from docx import Document
document = Document()
document.save('test.docx')
这段代码创建了一个内置默认的新文档,并直接保存到名为 “test.docx" 的文件中。所谓的 默认模板 实际上只是一个没有内容的 Word 文件,该文件在 python-docx 库文件夹中。与 Word 的新建文档差不多。
打开真实的文件
from docx import Document
document = Document('现有文档.docx')
document.save('新文件名.docx')
注意:
- 这种方式可以打开 Word 2007 或更高版本的 .docx 文件( Word 2003 及更早版本的 .doc 文件将不起作用)。注意,并不是所有的 .docx 文档的内容都被封装,如注脚等;不过我们也可以通过操作其 xml 文件来修改这些内容。
- 当我们打开并以同一个文件名保存文件时,python-docx 会覆盖未被打开的同名文件。注意,保存的目标文件不能被其它程序打开。
打开 文件类 文档
python-docx 可以打开 文件类 对象作为文档。它还能保存到 文件类 对象。当我们想通过网络连接或数据库获取源文档或目标文档,并且不与文件系统进行交互时,这就很方便。实际止,我们可以传递 打开的文件 或 StringIO /BytesIO 流对象来打开或保存文档,如下所示:
from docx import Document
from io import StringIO
f = open('foobar.docx', 'rb')
document = Document(f)
f.close()
# 或
with open('foobar.docx', 'rb') as f:
source_stream = StringIO(f.read())
document = Document(source_stream)
source_stream.close()
...
target_stream = StringIO()
document.save(target_stream)
并不是所有操作系统都需要 ‘rb’ 文件打开模式参数。它默认是 ‘r’ ,这有时就可以了,但 Windows 和 少数版本的 Linux 上要求使用 ‘b’ (二进制模式)才能允许 Zipfile 打开文件。
到目前为止,我们已经学会打开和保存文档了。下一步是从打开的文档中获取一些内容…