python如何將圖片批量保存至word文檔中
將圖片批量保存至word文檔中
def picture_docx(path_picture,path_docx): # 要插入的圖片所在的文件夾 #fold = 'C:\\Users\\Administrator\\Desktop\\tu' fold = path_picture # os.walk(fold)沒(méi)有返回值,所以這么做顯然沒(méi)有結(jié)果,是錯(cuò)的 # pics=list(os.walk(fold)[3]) # # pics.pop() # print(pics) # pics是圖片的名字 # root是string類(lèi)型, dirs和pics是list類(lèi)型 for root, dirs, pics in os.walk(fold): doc = Document() for i in range(0, len(pics)): # 不需要把文件后綴名去掉,后面的PIL庫(kù)里的open可以直接識(shí)別出文件名后綴 # print(pics[i],'\n') # pics[i] = os.path.splitext(pics[i])[0] # print(pics[i], '\n') # 我前半部分的路徑直接復(fù)制黏貼了,沒(méi)用root和dirs filepath = path_picture + pics[i] # filepath = root + '\\' + str(pics[i]) try: doc.add_picture(filepath, width=Inches(6), height=Inches(3)) except Exception: pic_tmp = Image.open(filepath) # 如果格式有問(wèn)題,就用save轉(zhuǎn)換成默認(rèn)的jpg格式 pic_tmp.save(pic_tmp) # 把處理后的圖片放進(jìn)Document變量doc中 doc.add_picture(filepath, width=Inches(6), height=Inches(3)) # 把Document變量doc保存到指定路徑的docx文件中 doc.save(path_docx + "PLS.docx") # 輸出保存成功的標(biāo)志 print("pic", i + 1, "successfully added.")
將本地圖片存儲(chǔ)到word文檔
想要利用Python來(lái)操作word文檔可以使用docx模塊.
安裝: pip install python-docx
from docx import Document from docx.shared import Inches string = '文字內(nèi)容' images = '1.jpg' # 保存在本地的圖片 doc = Document() # doc對(duì)象 doc.add_paragraph(string) # 添加文字 doc.add_picture(images, width=Inches(2)) # 添加圖, 設(shè)置寬度 doc.save('word文檔.docx') # 保存路徑
執(zhí)行結(jié)果: 本地生成了一個(gè)Word文檔, 打開(kāi)之后.
但是有時(shí)添加圖片會(huì)產(chǎn)生識(shí)別異常:
這是因?yàn)閳D片的格式問(wèn)題, 對(duì)比一下 0.jpg 和 1.jpg的二進(jìn)制數(shù)據(jù), 添加0.jpg會(huì)異常, 1.jpg則不會(huì).
解決的方法
圖片格式轉(zhuǎn)換
from docx import Document from docx.shared import Inches from PIL import Image string = '文字內(nèi)容' images = '0.jpg' # 保存在本地的圖片 doc = Document() doc.add_paragraph(string) # 添加文字 try: doc.add_picture(images, width=Inches(2)) # 添加圖, 設(shè)置寬度 except Exception: jpg_ima = Image.open(images) # 打開(kāi)圖片 jpg_ima.save('0.jpg') # 保存新的圖片 doc.add_picture(images, width=Inches(2)) # 添加圖, 設(shè)置寬度 doc.save('word文檔.docx') # 保存路徑
結(jié)果就和前面一樣了:
docx庫(kù)還有很多的方法,大家可以查看文檔。
https://python-docx.readthedocs.io/en/latest/
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python的輸出格式化和進(jìn)制轉(zhuǎn)換介紹
大家好,本篇文章主要講的是Python的輸出格式化和進(jìn)制轉(zhuǎn)換介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01python讀寫(xiě)修改Excel之xlrd&xlwt&xlutils
這篇文章主要介紹了python讀寫(xiě)修改Excel之xlrd&xlwt&xlutils,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python datatime庫(kù)語(yǔ)法使用詳解
這篇文章主要介紹了Python datatime庫(kù)語(yǔ)法使用詳解,datetime模塊用于是date和time模塊的合集,文章圍繞相關(guān)資料展開(kāi)詳情,感興趣的小伙伴可以擦參考一下2022-07-07基于Python編寫(xiě)一個(gè)B站全自動(dòng)抽獎(jiǎng)的小程序
本文將利用Python編寫(xiě)一個(gè)B站全自動(dòng)抽獎(jiǎng)的小程序,可以實(shí)時(shí)監(jiān)控自己關(guān)注的UP主,如果關(guān)注的UP主中有人發(fā)布了抽獎(jiǎng)的動(dòng)態(tài),就自動(dòng)參與這個(gè)抽獎(jiǎng)。這樣就能不錯(cuò)過(guò)任何一個(gè)可以暴富的機(jī)會(huì)了。需要的可以參考一下2022-03-03python中以函數(shù)作為參數(shù)(回調(diào)函數(shù))的實(shí)現(xiàn)方法
這篇文章主要介紹了python中以函數(shù)作為參數(shù)(回調(diào)函數(shù))的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Python如何使用Eel和HTML開(kāi)發(fā)桌面應(yīng)用
這篇文章主要介紹了Python使用Eel和HTML開(kāi)發(fā)桌面應(yīng)用問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01python正則表達(dá)式re之compile函數(shù)解析
這篇文章主要介紹了python正則表達(dá)式re之compile函數(shù)解析,介紹了其定義,匹配模式等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10Python實(shí)現(xiàn)在不同坐標(biāo)系中繪制曲線
這篇文章主要為大家學(xué)習(xí)介紹了Python如何實(shí)現(xiàn)在不同坐標(biāo)系中繪制曲線,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-07-07