一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

第105天: Python 操作 Word

 Python技術(shù) 2021-06-17

上次給大家介紹了 Python 如何操作 Excel ,是不是感覺還挺有趣的,今天為大家再介紹下,用 Python 如何操作 Word ,這個(gè)可能跟數(shù)據(jù)處理關(guān)系不大,用的也不多,不過可以先了解下都能實(shí)現(xiàn)什么功能,以備不時(shí)之需。

安裝 python-docx

處理 Word 需要用到 python-docx 庫,目前版本為 0.8.10 ,執(zhí)行如下安裝命令:

$ pip3 install python-docx################# 運(yùn)行結(jié)果 ################Collecting python-docx Downloading https://files./packages/e4/83/c66a1934ed5ed8ab1dbb9931f1779079f8bca0f6bbc5793c06c4b5e7d671/python-docx-0.8.10.tar.gz (5.5MB) |████████████████████████████████| 5.5MB 553kB/sRequirement already satisfied: lxml>=2.3.2 in /usr/local/lib/python3.7/site-packages (from python-docx) (4.4.1)Building wheels for collected packages: python-docx Building wheel for python-docx (setup.py) ... done Stored in directory: /Users/mjg/Library/Caches/pip/wheels/18/0b/a0/1dd62ff812c857c9e487f27d80d53d2b40531bec1acecfa47bSuccessfully built python-docxInstalling collected packages: python-docxSuccessfully installed python-docx-0.8.10

OK,如果提示以上信息則安裝成功。

寫入 Word

平時(shí)我們在操作 Word 寫文檔的時(shí)候,一般分為幾部分:標(biāo)題、章節(jié)、段落、圖片、表格、引用以及項(xiàng)目符號編號等。下面我們就按這幾部分如何用 Python 操作來一一介紹。

標(biāo)題

文檔標(biāo)題創(chuàng)建比較簡單,通過 Document() 創(chuàng)建出一個(gè)空白文檔,只要調(diào)用 add_heading 方法就能創(chuàng)建標(biāo)題。

# word_1.py
# 導(dǎo)入庫from docx import Documentfrom docx.shared import Ptfrom docx.shared import Inchesfrom docx.oxml.ns import qn
# 新建空白文檔doc1 = Document()
# 新增文檔標(biāo)題doc1.add_heading('如何使用 Python 創(chuàng)建 Word',0)
# 保存文件doc1.save('word1.docx')

這樣就完成了創(chuàng)建文檔和文章標(biāo)題的操作,下面通過命令 python word_1.py 運(yùn)行程序,會生成名為 word1.docx 的文檔,打開文章顯示如下圖所示:

標(biāo)題

章節(jié)與段落

有了文章標(biāo)題,下面我們來看章節(jié)和段落是怎么操作的,在上面代碼后面增加章節(jié)和段落操作的代碼如下:

# word_1.py
# 導(dǎo)入庫from docx import Documentfrom docx.shared import Ptfrom docx.shared import Inchesfrom docx.oxml.ns import qn
# 新建空白文檔doc1 = Document()
# 新增文檔標(biāo)題doc1.add_heading('如何使用 Python 創(chuàng)建 Word',0)
# 創(chuàng)建段落描述doc1.add_paragraph('我們平時(shí)使用 Word 用來做文章的處理,可能沒想過它可以用 Python 生成,下面我們就介紹具體如何操作……')
# 創(chuàng)建一級標(biāo)題doc1.add_heading('安裝 python-docx 庫',1)
# 創(chuàng)建段落描述doc1.add_paragraph('現(xiàn)在開始我們來介紹如何安裝 python-docx 庫,具體需要以下兩步操作:')
# 創(chuàng)建二級標(biāo)題doc1.add_heading('第一步:安裝 Python',2)
# 保存文件doc1.save('word1.docx')

上面我們說了 add_heading 方法用來增加文章標(biāo)題,不過通過上面代碼我們能知道,這個(gè)方法的第二上參數(shù)為數(shù)字,其實(shí)這個(gè)就是用來標(biāo)示幾級標(biāo)題的,在我們平時(shí)就用來標(biāo)示章節(jié)。add_paragraph 方法則是用來在文章中增加段落的,那我們現(xiàn)在就通過命令 python word_1.py 運(yùn)行程序看下效果:

章節(jié)段落

字體和引用

前面我們通過 add_paragraph 方法增加了兩個(gè)段落,現(xiàn)在我們就看下如何對段落中字體如何操作,以及引用段落的操作。繼續(xù)修改以上代碼,增加對文章字體字號、加粗、傾斜等操作,具體代碼如下:

# word_1.py
# 導(dǎo)入庫from docx import Documentfrom docx.shared import Ptfrom docx.shared import Inchesfrom docx.oxml.ns import qnfrom docx.shared import RGBColor
# 新建空白文檔doc1 = Document()
# 新增文檔標(biāo)題doc1.add_heading('如何使用 Python 創(chuàng)建 Word',0)
# 創(chuàng)建段落描述doc1.add_paragraph('我們平時(shí)使用 Word 用來做文章的處理,可能沒想過它可以用 Python 生成,下面我們就介紹具體如何操作……')
# 創(chuàng)建一級標(biāo)題doc1.add_heading('安裝 python-docx 庫',1)
# 創(chuàng)建段落描述doc1.add_paragraph('現(xiàn)在開始我們來介紹如何安裝 python-docx 庫,具體需要以下兩步操作:')
# 創(chuàng)建二級標(biāo)題doc1.add_heading('第一步:安裝 Python',2)
# 創(chuàng)建段落,添加文檔內(nèi)容paragraph = doc1.add_paragraph('這是第一步的安裝描述!')
# 段落中增加文字,并設(shè)置字體字號run = paragraph.add_run('(注意:這里設(shè)置了字號為20)')run.font.size = Pt(20)
# 設(shè)置英文字體run = doc1.add_paragraph('這里設(shè)置英文字體:').add_run('This Font is Times New Roman ')run.font.name = 'Times New Roman'
# 設(shè)置中文字體run = doc1.add_paragraph('這里設(shè)置中文字體:').add_run('當(dāng)前字體為黑體')run.font.name='黑體'r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑體')
# 設(shè)置斜體run = doc1.add_paragraph('這段設(shè)置:').add_run('文字的是斜體 ')run.italic = True
# 設(shè)置粗體run = doc1.add_paragraph('這段再設(shè)置:').add_run('這里設(shè)置粗體').bold = True
# 設(shè)置字體帶下劃線run = doc1.add_paragraph('這段為下劃線:').add_run('這里設(shè)置帶下劃線').underline = True
# 設(shè)置字體顏色run = doc1.add_paragraph('這段字體為紅色:').add_run('這里設(shè)置字體為紅色')run.font.color.rgb = RGBColor(0xFF, 0x00, 0x00)
# 增加引用doc1.add_paragraph('這里是我們引用的一段話:人生苦短,我用Python。', style='Intense Quote')
# 保存文件doc1.save('word1.docx')

上面代碼主要是針對段落字體的各種設(shè)置,每段代碼都標(biāo)有注釋應(yīng)該比較容易理解,現(xiàn)在通過命令 python word_1.py 運(yùn)行程序看下效果:

字體引用

項(xiàng)目列表

我們平時(shí)在使用 Word 時(shí),為了能展示更清晰,會用到項(xiàng)目符號和編號,將內(nèi)容通過列表的方式展示出來,下面我們新建一個(gè)文件 word_2.py 并編寫如下代碼:

# word_2.py
# 導(dǎo)入庫from docx import Documentfrom docx.shared import Ptfrom docx.shared import Inchesfrom docx.oxml.ns import qn
# 新建文檔doc2 = Document()
doc2.add_paragraph('哪個(gè)不是水果:')
# 增加無序列表doc2.add_paragraph( '蘋果', style='List Bullet')doc2.add_paragraph( '香蕉', style='List Bullet')doc2.add_paragraph( '餛燉', style='List Bullet')
doc2.add_paragraph('2020年度計(jì)劃:')# 增加有序列表doc2.add_paragraph( '每周健身一天', style='List Number')doc2.add_paragraph( '學(xué)習(xí)50本書', style='List Number')doc2.add_paragraph( '減少加班時(shí)間', style='List Number')
# 保存文件doc2.save('word2.docx')

現(xiàn)在通過命令 python word_2.py 運(yùn)行程序看下效果:

項(xiàng)目列表

圖片和表格

我們平時(shí)編輯文章時(shí),插入圖片和表格也是經(jīng)常使用到的,那用 Python 該如何操作插入圖片和表格?首先我們隨便找了個(gè)圖片,我這用了 Python 安裝時(shí)的一張截圖,文件名為 python_install.png,然后在 word_2.py 文件中增加如下代碼:

# word_2.py
# 導(dǎo)入庫from docx import Documentfrom docx.shared import Ptfrom docx.shared import Inchesfrom docx.oxml.ns import qn
# 新建文檔doc2 = Document()
doc2.add_paragraph('哪個(gè)不是水果:')
# 增加無序列表doc2.add_paragraph( '蘋果', style='List Bullet')doc2.add_paragraph( '香蕉', style='List Bullet')doc2.add_paragraph( '餛燉', style='List Bullet')
doc2.add_paragraph('2020年度計(jì)劃:')# 增加有序列表doc2.add_paragraph( '每周健身一天', style='List Number')doc2.add_paragraph( '學(xué)習(xí)50本書', style='List Number')doc2.add_paragraph( '減少加班時(shí)間', style='List Number')
doc2.add_heading('圖片',2)
# 增加圖像doc2.add_picture('python_install.png', width=Inches(5.5))
doc2.add_heading('表格',2)
# 增加表格,這是表格頭table = doc2.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cellshdr_cells[0].text = '編號'hdr_cells[1].text = '姓名'hdr_cells[2].text = '職業(yè)'
# 這是表格數(shù)據(jù)records = ( (1, '張三', '電工'), (2, '張五', '老板'), (3, '馬六', 'IT'))
# 遍歷數(shù)據(jù)并展示for id, name, work in records: row_cells = table.add_row().cells row_cells[0].text = str(id) row_cells[1].text = name row_cells[2].text = work
# 手動增加分頁doc2.add_page_break()
# 保存文件doc2.save('word2.docx')

OK,現(xiàn)在再來讓我們再來看下效果:

圖片表格

讀取 Word 文件

上面寫了很多用 Python 創(chuàng)建空白 Word 文件格式化字體并保存到文件中,接下來我們再簡單介紹下如何讀取已有的 Word 文件,請看如下代碼:

# word_3.py
# 引入庫from docx import Document
# 打開文檔1doc1 = Document('word1.docx')
# 讀取每段內(nèi)容pl = [ paragraph.text for paragraph in doc1.paragraphs]
print('###### 輸出word1文章內(nèi)容')# 輸出讀取到的內(nèi)容for i in pl: print(i)

# 打開文檔2doc2 = Document('word2.docx')
print('\n###### 輸出word2文章內(nèi)容')
pl2 = [ paragraph.text for paragraph in doc2.paragraphs]
# 輸出讀取到的內(nèi)容for j in pl2: print(j)
# 讀取表格材料,并輸出結(jié)果tables = [table for table in doc2.tables]for table in tables: for row in table.rows: for cell in row.cells: print (cell.text,end=' ') print() print('\n')

以上代碼是將之前我們輸出的兩個(gè)文檔內(nèi)容都讀取出來,當(dāng)然這里只是打印到控制臺,并沒有做其他處理。現(xiàn)在我們來執(zhí)行命令 python word_3.py 把代碼執(zhí)行看下結(jié)果:

讀取并打印

總結(jié)

本文為大家介紹了 Python 中如何操作 Word 文檔,其中寫入文件時(shí),我們常用各種標(biāo)題段落字體設(shè)置等,會比較復(fù)雜,這里只是簡單介紹了最常用的幾種方法,如果想了解更多請參考文末官網(wǎng)介紹,之后會為大家介紹其他類型文件的操作方式,希望大家能多多關(guān)注。

參考

python-excel 官網(wǎng):https://python-docx./en/latest/index.html

示例代碼:https://github.com/JustDoPython/python-100-day

系列文章
第104天:Python 操作 XML
第103天:Python 操作 Excel
第102天:Python aiohttp
第101天:Python asyncio
從 0 學(xué)習(xí) Python 0 - 100 大合集總結(jié)

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩精品小视频在线观看| 日韩人妻av中文字幕| 日韩在线视频精品视频| 蜜桃臀欧美日韩国产精品| 国产av一区二区三区麻豆| 国产亚洲不卡一区二区| 加勒比人妻精品一区二区| 国产精品人妻熟女毛片av久| 中文字幕亚洲视频一区二区| 国产精品成人一区二区三区夜夜夜| 在线免费观看一二区视频| 日韩高清中文字幕亚洲| 久久精品欧美一区二区三不卡| 国产欧美日韩精品一区二| 国产欧美性成人精品午夜| 制服丝袜美腿美女一区二区| 99热九九在线中文字幕| 午夜精品久久久99热连载| 少妇熟女亚洲色图av天堂| 国产又粗又猛又大爽又黄| 精品al亚洲麻豆一区| 中日韩免费一区二区三区| 亚洲精品日韩欧美精品| 久久国产精品热爱视频| 日本91在线观看视频| 丝袜美女诱惑在线观看| 欧美黑人暴力猛交精品| 高潮日韩福利在线观看| 国产成人精品国产成人亚洲| 国内尹人香蕉综合在线| 日韩少妇人妻中文字幕| 激情视频在线视频在线视频 | 99在线视频精品免费播放| 国产亚洲精品久久99| 91在线国内在线中文字幕| 欧美大胆美女a级视频| 青青免费操手机在线视频| 精品国产亚洲区久久露脸| 婷婷九月在线中文字幕| 欧美午夜一级特黄大片| 欧美多人疯狂性战派对|