Python讀寫docx文件的方法
Python讀寫word文檔有現(xiàn)成的庫(kù)可以處理。我這里采用 python-docx。可以用pip install python-docx安裝一下。
這里說一句,ppt和excel也有類似的庫(kù)哦,而且是直接讀取文件里面的xml數(shù)據(jù)。所以doc格式得另找其他庫(kù)處理,doc格式不是基于xml的。
幫助文檔:http://python-docx.readthedocs.org/en/latest/
1、新建或打開文件。這個(gè)比較簡(jiǎn)單用docx的Document類,若指定路徑則是打開文檔;若沒有指定路徑則是新建文檔
#coding:utf-8 import docx #新建文檔 doc_new = docx.Document() #讀取文檔 doc = docx.Document(ur'C:\1.docx')
2、保存文件。有打開,就有保存。用Document類的save方法,其中參數(shù)是保存的文件路徑,或者要保存的文件流。一般指定路徑即可。
doc.save(path_or_stream)
3、對(duì)象集合。python-docx包含了word文檔的相關(guān)對(duì)象集合。
doc.paragraphs #段落集合 doc.tables #表格集合 doc.sections #節(jié) 集合 doc.styles #樣式集合 doc.inline_shapes #內(nèi)置圖形 等等...
4、插入段落。段落是word最基本的對(duì)象之一。
doc.add_paragraph(u'第一段',style=None) #插入一個(gè)段落,文本為“第一段” #默認(rèn)是不應(yīng)用樣式,這里也可以不寫style參數(shù),或者指定一個(gè)段落樣式 doc.add_paragraph(u'第二段',style='Heading 2') #這些樣式都是word默認(rèn)帶有的樣式,可以直接羅列出來有哪些段落樣式 print [s.name for s in doc.styles if s.type==1]
5、新增樣式。這個(gè)幫助文檔里面說得不仔細(xì),而且還是英文的。我手頭上的項(xiàng)目用到這個(gè),就自己琢磨出怎么使用,如下。
#coding:utf-8 from docx import Document from docx.shared import RGBColor #這個(gè)是docx的顏色類 #新建文檔 doc = Document() #新增樣式(第一個(gè)參數(shù)是樣式名稱,第二個(gè)參數(shù)是樣式類型:1代表段落;2代表字符;3代表表格) style = doc.styles.add_style('style name 1', 2) #設(shè)置具體樣式(修改樣式字體為藍(lán)色,當(dāng)然還可以修改其他的,大家自己嘗試) style.font.color.rgb = RGBColor(0x0, 0x0, 0xff)
6、應(yīng)用字符樣式。字符自然是在段落里面的,可以采用下面方法給段落追加文字和設(shè)置字符樣式。
#插入一個(gè)空白段落 p = doc.add_paragraph('') p.add_run('123', style="Heading 1 Char") p.add_run('456') p.add_run('789', style="Heading 2 Char") #這樣一個(gè)段落就應(yīng)用了兩個(gè)字符樣式,中間“456”就沒應(yīng)用樣式 print p.text #輸出結(jié)果是u'123456789' 也還是連續(xù)的
7、設(shè)置字體。當(dāng)然可以不用通過設(shè)置樣式對(duì)某些字進(jìn)行設(shè)置,也可以直接設(shè)置。
p = doc.add_paragraph('') r = p.add_run('123') r.font.bold = True #加粗 r.font.italic = True #傾斜 等等...
8、表格操作。表格也是經(jīng)常用到的一種對(duì)象類型。
#新建一個(gè)2x3的表格,style可以不寫 table=doc.add_table(rows=2,cols=3,style=None) #可以用table 的rows和columns得到這個(gè)表格的行數(shù)和列數(shù) print len(table.rows) print len(table.columns) #遍歷表格 for row in table.rows: row.cells[0].text = '1' #print row.cells[0].text #新增行或列 table.add_row() table.add_column()
Word常見操作差不多就是這些。大家可以查看幫助文檔,也可以用dir和help查看對(duì)象的方法屬性和幫助。
以上這篇Python讀寫docx文件的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python操作docx寫入內(nèi)容,并控制文本的字體顏色
- 基于python的docx模塊處理word和WPS的docx格式文件方式
- Python使用docx模塊實(shí)現(xiàn)刷題功能代碼
- 解決Python import docx出錯(cuò)DLL load failed的問題
- 詳解python中docx庫(kù)的安裝過程
- python實(shí)現(xiàn)生成Word、docx文件的方法分析
- Python使用python-docx讀寫word文檔
- Python docx庫(kù)用法示例分析
- Python操作word常見方法示例【win32com與docx模塊】
- 基于Python獲取docx/doc文件內(nèi)容代碼解析
相關(guān)文章
Python中關(guān)于print和return的區(qū)別
這篇文章主要介紹了Python中關(guān)于print和return的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02TensorFlow dataset.shuffle、batch、repeat的使用詳解
今天小編就為大家分享一篇TensorFlow dataset.shuffle、batch、repeat的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python Pydantic進(jìn)行數(shù)據(jù)驗(yàn)證的方法詳解
在 Python 中,有許多庫(kù)可用于數(shù)據(jù)驗(yàn)證和處理,其中一個(gè)流行的選擇是 Pydantic,下面就跟隨小編一起學(xué)習(xí)一下Pydantic 的基本概念和用法吧2024-01-01Python簡(jiǎn)單進(jìn)程鎖代碼實(shí)例
這篇文章主要介紹了Python簡(jiǎn)單進(jìn)程鎖代碼實(shí)例,本文講解了線程和進(jìn)程的相關(guān)知識(shí),然后給出了Python的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04詳解PyQt5 GUI 接收UDP數(shù)據(jù)并動(dòng)態(tài)繪圖的過程(多線程間信號(hào)傳遞)
這篇文章主要介紹了PyQt5 GUI 接收UDP數(shù)據(jù)并動(dòng)態(tài)繪圖(多線程間信號(hào)傳遞),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-0910分鐘教你用Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
今天,我們就來用Python實(shí)現(xiàn)微信的自動(dòng)回復(fù)功能吧,并且把接收到的消息統(tǒng)一發(fā)送到文件助手里面,方便統(tǒng)一查看。感興趣的朋友跟隨小編一起看看吧2018-11-11keras實(shí)現(xiàn)多種分類網(wǎng)絡(luò)的方式
這篇文章主要介紹了keras實(shí)現(xiàn)多種分類網(wǎng)絡(luò)的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06