精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用Python讀寫Word文檔入門

大家好,我是才哥。

最近有同事需要批量出500Word文檔,按照1個Word文檔耗時1分鐘來算也需要8.33小時足足有1天工時。于是,這位同事找到了才哥幫忙,才哥接過需求花了不到30分鐘寫好腳本,運行腳本不到1分鐘就生成了500份Word文檔并且進行了分類歸檔!

這就是Python的魅力,讓工作更輕松!

今天,我們就來了解一下用Python讀寫Word文檔。未來,我將再出兩期進行補充介紹,一篇是批量生成Word文檔的方法(也就是我搞定同事需求的案例),另外一篇是詳解Python寫Word(包含可能你都不知道的各種Word格式),敬請期待哈~

目錄:

  • 1. 安裝模塊

  • 2. 讀取Word文檔

  • 3. 寫入Word文檔

1. 安裝模塊

這里我們用到的是python-docx模塊,讀寫Word文檔的操作均有它完成!

# 安裝該模塊,在命令行鍵入以下命令
pip install python-docx

在進行后續(xù)介紹前,我們先簡單了解一下Word文檔。和純文本(比如txt)相比, .docx文件有很多種結構,這些結構在python-docx中用3種不同的類型來表示:最高一層是Document對象表示文檔,每個Document對象包含一個Paragraph 對象也就是段落組成的列表,而每個Paragraph對象則包含一個Run對象的列表,至于Run對象大家可以通過下面的段落Paragraph來了解。

多個Run對象組成的Paragraph

我們知道Word里的文本包含有很多格式,比如字體、字號、粗體/斜體、顏色等等。一個Run對象是具有相同格式的文本,當發(fā)生變化的時候就需要一個新的Run對象,這也就是上圖中1個Paragraph對象有4個Run對象的原因。

理解以上知識后,我們再來了解讀與寫吧。

2. 讀取Word文檔

我們本地創(chuàng)建一個案例文檔,用于演示讀取Word,案例文檔內容如下:

案例.docx

可以看到文檔一共有四行,兩行標題以及兩行正文。

import docx
# 讀取Word文檔
doc = docx.Document(r'案例.docx')

我們知道了讀取Word每個paragraph段落和Run,那么如何讀取完整的Word文本內容呢?這里,自定義一個函數(shù)將全部的paragraph段落內容存起來,每個paragraph段落之間用換行符\n隔開即可。

import docx

def getText(fileName):
    doc = docx.Document(fileName)
    TextList = []
    for paragraph in doc.paragraphs:
        TextList.append(paragraph.text)
    
    return '\n'.join(TextList)

我們調用該函數(shù),可以得到:

fileName = r'案例.docx'
print(getText(fileName))
標題1
這是一個段落,有粗體和斜體
大家好,我是才哥。
標題2

當然了,這里讀取后輸出顯示的文本不帶有格式屬性哈。

3. 寫入Word文檔

在寫入Word之前,我們先簡單了解下Word的一些格式規(guī)則。

毫不夸張的講,把全局樣式玩的明白的人蠻少的。這方面主要是正文樣式與標題樣式,如果玩得明白的話,其實設置好了之后幾乎不需要再進行啥調整,全局格式都能自動設置與更新。就我所見的大多數(shù)朋友的文檔,這方面基本達不到。(感覺會被爆錘~~)

全局樣式

比如,我們可以設置正文樣式為 微軟雅黑字體,字號12,縮進,間距等等;設置標題樣式為 微軟雅黑字體,字號14,刪除段落后間距等等。

在我們Python處理Word的時候,段落樣式可以應用于 Paragraph 對象,字符樣式可以應用于 Run 對象,鏈接的樣式可以應用于這兩種對象。可以將 ParagraphRun 對象的 style 屬性設置為一個字符串,從而設置樣式。這個字符串應該是一種樣式的名稱。如果 style 被設置為 None,就沒有樣式與 ParagraphRun 對象關聯(lián)。

當然,這里我們不展開介紹,就簡單介紹Run對象上的字符屬性。關于更多的介紹,我們放在第三期的 詳解Python寫Word里

對于Run對象的字符text屬性,都有3個狀態(tài):True(啟用)、False(禁用)和None(默認)。

text屬性有哪些?看下表:

屬性描述
bold文本以粗體出現(xiàn)
italic文本以斜體出現(xiàn)
underline文本帶下劃線
strike文本帶刪除線
double_strike文本帶雙刪除線
all_caps文本以大寫首字母出現(xiàn)
small_caps文本以大寫首字母出現(xiàn),小寫字母小兩個點
shadow文本帶陰影
outline文本以輪廓線出現(xiàn),而不是實心
rtl文本從右至左書寫
imprint文本以刻入頁面的方式出現(xiàn)
emboss文本以凸出頁面的方式出現(xiàn)

我們演示一下:

調整樣式

以上就是對段落的一些簡單介紹及演示,接下來,我們來看看怎么創(chuàng)建并寫入Word

要創(chuàng)建自己的.docx 文件,就調用 docx.Document(),返回一個新的、空白的 Word Document 對象  。Document 對象的 add_paragraph()方法將一段新文本添加到文檔中,并返回添加的 Paragraph 對象的引用。在添加完文本之后,向 Document 對象的 save()方法傳入一個文件名字符串,將 Document 對象保存到文件。

import docx

doc = docx.Document()
doc.add_paragraph('這是一個段落')
doc.save('寫入word.docx')
寫入word

我們可以添加段落、設置段落文本樣式等等,比如:

import docx

doc = docx.Document()
p1 = doc.add_paragraph('這是一個段落')
p1.add_run('加粗的一句話').bold = True
doc.add_paragraph('這是第二個段落')
doc.save('多段落.docx')
多段落

我們還可以添加一個段位,這個段落為標題樣式,這里需要用到add_heading()。它有兩個參數(shù),字符串表示文本內容,后面數(shù)字是標題層級。

import docx

doc = docx.Document()
doc.add_heading('標題',0)
doc.add_heading('標題1',1)
doc.add_heading('標題2',2)
doc.add_heading('標題3',3)
doc.add_heading('標題4',4)
doc.save('標題.docx')
標題

同樣,我們還可換行與換頁操作。

要添加換行符(而不是開始一個新的段落),可以在 Run 對象上調用 add_break()方法,換行符將出現(xiàn)在它后面。如果希望添加換頁符,可以將 docx.text.WD_BREAK.PAGE作為唯一的參數(shù),傳遞給 add_break()  。

import docx

doc = docx.Document()
p1 = doc.add_paragraph('這是一個段落')
p1.add_run('加粗的一句話').bold = True
# 換行
doc.paragraphs[0].runs[0].add_break()
doc.save('換行.docx')
換行

有人會說,一般word里還有圖片嘛,當然咱們也能搞定添加圖片

有一個 add_picture()方法,可以在段落末尾添加圖像 。

import docx

doc = docx.Document()
doc.add_paragraph('這是一個段落,后面帶圖片')
doc.add_picture('圖片.png'
                width=docx.shared.Inches(3),
                height=docx.shared.Cm(4))
doc.add_paragraph('這是第二個段落')
doc.save('圖片.docx')
添加圖片

以上就是本次的簡單入門介紹。

其實Word文檔各種樣式設置,數(shù)據(jù)類型展示等等非常豐富,而Python-docx這個模塊其實也能進行大多數(shù)的處理。不過,日常中我們用到的功能也沒那么多,此部分留作后續(xù)詳情講解哈。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
教你怎么使用Python對word文檔進行操作
用Python讀寫word文檔
python-docx處理Word必備工具
python編程實踐:python
用 Python 自動生成 Word 文檔
Python 讀取 Word 的藝術:python-docx 模塊的使用和介紹
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 富阳市| 平山县| 长汀县| 山西省| 无极县| 砚山县| 洪江市| 丰宁| 遂川县| 金沙县| 东城区| 城市| 浦东新区| 葫芦岛市| 芜湖市| 天津市| 积石山| 江陵县| 长子县| 页游| 凤城市| 上思县| 德安县| 松滋市| 深水埗区| 正镶白旗| 新密市| 通化市| 石嘴山市| 甘肃省| 桐城市| 瑞安市| 兴宁市| 莱西市| 武鸣县| 连城县| 营口市| 土默特右旗| 高密市| 宜丰县| 平乡县|