自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

別再問我Python怎么操作Word了

開發(fā) 前端
在之前的自動化系列文章中,我們分別講解過python操作Excel利器openpyxl,也講過python操作PDF的幾種方式,今天我們將通過代碼講解Python操作Word文檔docx的常用方法。

  在之前的自動化系列文章中,我們分別講解過python操作Excel利器openpyxl,也講過python操作PDF的幾種方式,今天我們將通過代碼講解Python操作Word文檔docx的常用方法。

安裝

docx是一個非標(biāo)準(zhǔn)庫,需要在命令行(終端)中使用pip即可安裝

  1. pip install python-docx 

一定要注意,安裝的時候是python-docx而實際調(diào)用時均為docx!

前置知識

別再問我python怎么操作Word了

Word中一般可以結(jié)構(gòu)化成三個部分:

  • 文檔Document
  • 段落Paragraph
  • 文字塊Run

也就是Document - Paragraph - Run三級結(jié)構(gòu),這是最普遍的情況。其中文字塊Run最難理解,并不能完成按照圖中所示,兩個符號之間的短句是文字塊。

通常情況下可以這么理解,但假如這個短句子中有多種不同的 樣式,則會被劃分成多個文字塊,以圖中的第一個黃圈為例,如果給這個短句添加一些細(xì)節(jié)

別再問我python怎么操作Word了

此時就有4個文字塊,同時有時候一個Word文檔中是存在表格的,這時就會新的文檔結(jié)構(gòu)產(chǎn)生

別再問我python怎么操作Word了

這時的結(jié)構(gòu)非常類似Excel,可以看成Document - Table - Row/Column - Cell四級結(jié)構(gòu)

Word讀取

1.打開Word

  1. from docx import Document 
  2. path = ...wordfile = Document(path) 

2. 獲取段落

一個word文件由一個或者多個paragraph段落組成

  1. paragraphs = wordfile.paragraphs  
  2. print(paragraphs) 

3. 獲取段落文本內(nèi)容

用.text獲取文本

  1. for paragraph in wordfile.paragraphs:  
  2.     print(paragraph.text) 

4. 獲取文字塊文本內(nèi)容

一個paragraph段落由一個或者多個run文字塊組成

  1. for paragraph in wordfile.paragraphs:  
  2.     for run in paragraph.runs:  
  3.         print(run.text) 

5. 遍歷表格

上面的操作完成的經(jīng)典三級結(jié)構(gòu)的遍歷,遍歷表格非常類似

  1. # 按行遍歷 
  2. for table in wordfile.tables: 
  3.     for row in table.rows: 
  4.         for cell in row.cells: 
  5.             print(cell.text) 
  6.        # 按列遍歷     for table in wordfile.tables: 
  7.     for column in table.columns: 
  8.         for cell in column.cells: 
  9.             print(cell.text) 

寫入Word

1. 創(chuàng)建Word

只要不指定路徑,就默認(rèn)為創(chuàng)建新Word文件

  1. from docx import Document 
  2. wordfile = Document()  

2. 保存文件

對文檔的修改和創(chuàng)建都切記保存

  1. wordfile.save(...) 
  2. ... 放需要保存的路徑 

3. 添加標(biāo)題

wordfile.add_heading(…, level=…)

別再問我python怎么操作Word了

4. 添加段落

wordfile.add_paragraph(...)

  1. wordfile = Document()  
  2. wordfile.add_heading('一級標(biāo)題', level=1)  
  3. wordfile.add_paragraph('新的段落'

5. 添加文字塊

wordfile.add_run(...)

別再問我python怎么操作Word了

6. 添加分頁

wordfile.add_page_break(...)

別再問我python怎么操作Word了

7. 添加圖片

wordfile.add_picture(..., width=…, height=…)

別再問我python怎么操作Word了

設(shè)置樣式

1. 文字字體設(shè)置

別再問我python怎么操作Word了

2.文字其他樣式設(shè)置

  1. from docx import Document 
  2. from docx.shared import RGBColor, Pt 
  3. wordfile = Document(file)for paragraph in wordfile.paragraphs: 
  4.     for run in paragraph.runs: 
  5.                 run.font.bold = True  # 加粗  
  6.         run.font.italic = True # 斜體  
  7.         run.font.underline = True # 下劃線  
  8.         run.font.strike = True # 刪除線  
  9.         run.font.shadow = True # 陰影  
  10.         run.font.size = Pt(20) # 字號  
  11.         run.font.color.rgb = RGBColor(25500) # 字體顏色 

3. 段落樣式設(shè)置

默認(rèn)對齊方式是左對齊,可以自行修改

別再問我python怎么操作Word了

小結(jié)

以上就是如何用Python中的docx模塊實現(xiàn)Word中的常用操作,只要明白什么類型的操作可以用Python執(zhí)行,并能在之后遇到繁瑣的任務(wù)時想到使用Python即可,以下是幾個利用該模塊實現(xiàn)辦公自動化的案例,希望能夠?qū)δ阌兴鶐椭?/p>

 

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2018-09-28 05:25:53

TopK算法代碼

2020-12-11 09:24:19

Elasticsear存儲數(shù)據(jù)

2018-10-28 22:37:00

計數(shù)排序排序面試

2018-11-01 13:49:23

桶排序排序面試

2020-04-22 11:19:07

貪心算法動態(tài)規(guī)劃

2015-02-13 10:42:31

前端工具Dreamweaver

2021-01-22 10:09:23

簡歷求職者面試

2020-04-16 08:22:11

HTTPS加解密協(xié)議

2020-03-30 17:20:54

B+樹SQL索引

2019-12-17 09:29:02

數(shù)據(jù)庫架構(gòu)分庫分表

2018-11-06 11:40:19

時間復(fù)雜度面試算法

2020-09-02 08:04:59

多線程互聯(lián)網(wǎng)高并發(fā)

2019-04-16 13:30:05

表達(dá)式求值數(shù)據(jù)結(jié)構(gòu)算法

2019-07-10 10:06:24

面試官三次握手四次揮手

2019-01-08 15:11:50

最大值最小值算法

2020-08-26 08:18:39

數(shù)據(jù)索引查詢

2020-11-02 11:21:35

Python編輯器代碼

2015-09-14 11:06:53

PYTHON運(yùn)維

2022-03-14 10:14:43

底層系統(tǒng)Nacos

2019-07-08 10:00:52

Java內(nèi)存模型并發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號