使用文檔
python-docx
允許您創建新文檔以及對現有文檔進行更改。實際上,它僅允許您對現有文檔進行更改。只是如果您從一個沒有任何內容的文檔開始,可能乍一看就像是從頭開始創建一個文檔。
這一特征是強大的。文檔的外觀在很大程度上取決於刪除所有內容時剩下的部分。諸如樣式,頁面頁眉和頁腳之類的內容與主要內容分開包含,使您可以在起始文檔中進行大量自定義,然后再出現在所生成的文檔中。
讓我們逐步完成一個文檔示例的創建步驟,首先從您可以對文檔執行的兩個主要操作開始,將其打開並保存。
打開文檔
最簡單的入門方法是在不指定要打開文件的情況下打開新文檔:
from docx import Document document = Document() document.save('test.docx')
這將從內置的默認模板中創建一個新文檔,並將其原樣保存到名為“ test.docx”的文件中。所謂的“默認模板”實際上只是一個沒有內容的Word文件,該文件與安裝的python-docx
軟件包一起存儲。它與 在選擇Word的文件>從模板新建...菜單項后選擇Word 文檔模板所獲得的效果大致相同。
真正打開文檔
如果要對最終文檔進行更多控制,或者要更改現有文檔,則需要使用文件名打開一個文檔:
document = Document('existing-document-file.docx') document.save('new-file-name.docx')
注意事項:
- 您可以通過這種方式打開任何Word 2007或更高版本的文件(Word 2003及更早版本的.doc文件將不起作用)。盡管您可能還不能操縱所有內容,但是其中已經存在的任何內容都可以加載和保存。該功能集仍在構建中,因此您尚不能添加或更改標題或腳注之類的內容,但是如果文檔中的
python-docx
內容足夠禮貌,可以使其獨立存在,並且足夠聰明,可以在不實際了解其含義的情況下保存它們。 - 如果您使用相同的文件名打開並保存文件,
python-docx
則將在不窺視的情況下乖乖地覆蓋原始文件。您將要確保這就是您想要的。
打開一個“類似文件”的文檔
python-docx
可以從所謂的類似文件的對象中打開文檔。它還可以保存到類似文件的對象。當您想通過網絡連接或數據庫獲取源文檔或目標文檔,並且不想(或不允許)與文件系統進行交互時,這會很方便。實際上,這意味着您可以傳遞打開文件或StringIO / BytesIO流對象來打開或保存文檔,如下所示:
f = open('foobar.docx', 'rb') document = Document(f) f.close() # or 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打開文件。
好的,因此您已經打開了一個文檔,並且可以確定以后可以將其保存在某個地方。下一步是在那里獲取一些內容……