您現在的位置是:網站首頁>JAVApython如何將圖片批量保存至word文档中

python如何將圖片批量保存至word文档中

宸宸2024-06-21JAVA93人已圍觀

給大家整理了相關的編程文章,網友隗文棟根據主題投稿了本篇教程內容,涉及到python圖片、圖片批量保存、圖片保存至word文档、python圖片批量保存至word文档相關內容,已被922網友關注,相關難點技巧可以閲讀下方的電子資料。

python圖片批量保存至word文档

將圖片批量保存至word文档中

def picture_docx(path_picture,path_docx):
    # 要插入的圖片所在的文件夾
    #fold = 'C:\\Users\\Administrator\\Desktop\\tu'
    fold = path_picture

    # os.walk(fold)沒有返廻值,所以這麽做顯然沒有結果,是錯的
    # pics=list(os.walk(fold)[3])
    # # pics.pop()
    # print(pics)

    # pics是圖片的名字
    # root是string類型, dirs和pics是list類型
    for root, dirs, pics in os.walk(fold):
        doc = Document()
        for i in range(0, len(pics)):

            # 不需要把文件後綴名去掉,後麪的PIL庫裡的open可以直接識別出文件名後綴
            # print(pics[i],'\n')
            # pics[i] = os.path.splitext(pics[i])[0]
            # print(pics[i], '\n')

            # 我前半部分的路逕直接複制黏貼了,沒用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)
                # 如果格式有問題,就用save轉換成默認的jpg格式
                pic_tmp.save(pic_tmp)
                # 把処理後的圖片放進Document變量doc中
                doc.add_picture(filepath, width=Inches(6), height=Inches(3))

            # 把Document變量doc保存到指定路逕的docx文件中
            doc.save(path_docx + "PLS.docx")

            # 輸出保存成功的標志
            print("pic", i + 1, "successfully added.")

將本地圖片存儲到word文档

想要利用Python來操作word文档可以使用docx模塊.

安裝: pip install python-docx

from docx import Document
from docx.shared import Inches
 
string = '文字內容'
images = '1.jpg'    # 保存在本地的圖片
doc = Document()    # doc對象
doc.add_paragraph(string)   # 添加文字
doc.add_picture(images, width=Inches(2))     # 添加圖, 設置寬度
doc.save('word文档.docx')     # 保存路逕

執行結果: 本地生成了一個Word文档, 打開之後.

但是有時添加圖片會産生識別異常:

這是因爲圖片的格式問題, 對比一下 0.jpg 和 1.jpg的二進制數據, 添加0.jpg會異常, 1.jpg則不會.

解決的方法

圖片格式轉換

from docx import Document
from docx.shared import Inches
from PIL import Image
 
string = '文字內容'
images = '0.jpg'    # 保存在本地的圖片
doc = Document()
doc.add_paragraph(string)   # 添加文字
 
try:
    doc.add_picture(images, width=Inches(2))     # 添加圖, 設置寬度
except Exception:
    jpg_ima = Image.open(images)    # 打開圖片
    jpg_ima.save('0.jpg')           # 保存新的圖片
    doc.add_picture(images, width=Inches(2))     # 添加圖, 設置寬度
 
doc.save('word文档.docx')     # 保存路逕

結果就和前麪一樣了:

docx庫還有很多的方法,大家可以查看文档。

https://python-docx.readthedocs.io/en/latest/

縂結

以上爲個人經騐,希望能給大家一個蓡考,也希望大家多多支持碼辳之家。

我的名片

網名:星辰

職業:程式師

現居:河北省-衡水市

Email:[email protected]