使用PYTHON實現docx文檔的讀寫


經常寫文章的小白們會遇到這樣的問題,知道想表達的意思,想出了大概描述的詞匯,但就是缺乏完整漂亮的句子,也許曾經在某個地方看到過,但是找不到了。另外一種情況,閱讀了大量的報告,用的時候想到了其中的某個結論或者數據,想要追根溯源卻有點難。可惜word軟件不提供在一堆文件里查找的功能,也沒有類似於正則表達式的檢索方法,只好自力更生來實現了。

python大法好。

依賴的包:python-docx

安裝:pip install python-docx

引用:import docx

.docx文件的結構比較復雜,分為三層,1、Docment對象表示整個文檔;2、Docment包含了Paragraph對象的列表,Paragraph對象用來表示文檔中的段落;3、一個Paragraph對象包含Run對象的列表,用下面這個圖說明Run到底是神馬東西。

Word里面的文本不只是包含了字符串,還有字號、字體、顏色等等屬性,都包含在style中。一個Run對象就是style相同的一段文本,新建一個Run就有新的style。

下面是一些簡單的演示:

 1 >>> import docx
 2 >>> doc = docx.Document('D:\project\python\searchdocx\demo.docx')
 3 >>> doc
 4 <docx.document.Document object at 0x0000000003277B40>
 5 >>> len(doc.paragraphs)
 6 7
 7 >>> doc.paragraphs[0].text
 8 u'Document Title'
 9 >>> doc.paragraphs[1].text
10 u'A plain paragraph with some bold and some italic'
11 >>> len(doc.paragraphs[1].runs)
12 5
13 >>> doc.paragraphs[1].runs[0]
14 <docx.text.run.Run object at 0x00000000032C8710>
15 >>> doc.paragraphs[1].runs[0].text
16 'A plain paragraph with'
17 >>> doc.paragraphs[2].runs[0].text
18 'Heading, level 1'
19 >>> doc.paragraphs[1].runs[1].text
20 ' some '
21 >>>

當然,也可以寫一個簡單的方法,讀取文檔中的所有文字,不管格式。

1 import docx
2 
3 def readDocx(docName):
4     fullText = []
5     doc = docx.Document(docName)
6     paras = doc.paragraphs
7     for p in paras:
8         fullText.append(p.text)
9     return '\n'.join(fullText)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM