使用python-docx不仅可以编写文档,还可以对现有文档进行编辑操作。
让我们逐步完成一个示例创建文档的步骤,从您可以对文档执行的两个主要操作开始,打开和保存。
打开一个文档
最简单的就是打开一个文档,但是不指定文件路径:
from docx import Document
document = Document()
document.save('test.docx')
这就相当于新建一个word文档,命名为test.docx
打开现有文档
如果你希望打开一个本地的文件,可以按照如下操作:
document = Document('c:/test.docx')
document.save('new_test.docx')
注意:
- 可以通过这种方式打开任何Word 2007或更高版本的文件(Word 2003及更早版本中的.doc文件将不起作用)。虽然可能无法操作所有内容,但已经存在的任何内容都会加载并保存得很好。功能集仍在构建中,因此无法添加或更改标题或脚注等内容,但如果文档中包含它们,python-docx还是会原封不动的保存。
- 如果使用相同的文件名打开并保存文件,python-docx将覆盖原始文件而不会提示。
打开“类似文件”的文档
python-docx可以从所谓的类文件对象中打开文档。还可以再保存到类似文件的对象。实际上,这代表可以对StringIO / BytesIO流对象进行打开或保存文档的操作,如下所示:
f = open('test.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) # 再度保存入内存