當前位置: 妍妍網 > 碼農

花了兩個小時,用 Python 提取 PPT 圖片~

2024-03-29碼農

大家好,我是魚皮。 人工智慧時 代, python 這門簡單易學的程式語言變得更加熱門。個人認為 Python 最大的優勢在於類別庫生態豐富,很多工具都有現成的開源計畫,比如 AI 工具、檔處理工具等。

雖然我們未必有時間深入學習 Python,但還是要學習下如何執行這些開源計畫,豐富自己的 「彈藥庫」。

這篇文章分享一位 Java 開發者 - 勇哥(作者認為自己是 python 小白), 花了兩個小時,第一次成功執行起來 python 計畫的經歷。為大家提供入門參考。

計畫是 powerpoint-extractor ,可以將 ppt 檔中的圖片提取出來,並輸出到固定的目錄。

1 安裝 python 環境

首先開啟終端,開啟後輸入 python3 。確定電腦上是否已安裝 python3,如果輸入 python 是檢視 mac 上的內建版本。

命令:python3【直接回車】

出現下面是頁面,表示已經安裝python3 【結束時可輸入:exit()然後點回車】

若沒有安裝,安裝 python3 如下兩種方式:

  1. 第一種方法 brew 安裝 python3 :brew install python3

  2. 第二種方法 官網 Python Releases for macOS ,根據自己的需求下載自己需要的版本下載 。

2 計畫 powerpoint-extractor

透過 git 命令 clone 該計畫 :

git clone [email protected]:2TallTyler/powerpoint-extractor.git

因為計畫依賴 python-pptx 元件,透過清華的映像執行如下的命令:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx

執行完成之後,可以透過 pip3 list 命令檢視已安裝包列表 :

3 PyCharm 配置

透過 PyCharm 開啟該計畫 :

上圖,我們發 現 python 直譯器並沒有配置好 ,py 指令碼顯示 import 包失敗

點選添加 python 直譯器按鈕,勾選繼承全域包,並確認好 python3 的執行目錄是否正確,點選 OK 即可完成配置。

點開 extract.py ,核心程式碼非常容易理解:

for eachfile in glob.glob(self.input_dir + os.sep + "*.pptx"):
ppt = Presentation(eachfile)
print("* " + eachfile)
presentation_count += 1
self.cur_image_index = 1
name = self.generate_image_name_part(eachfile)
# 遍歷每張投影片
for page, slide in enumerate(ppt.slides):
# 將投影片上的所有文本收集到一個字串中,以換行符分隔
text = ''
for shape in slide.shapes:
if shape.has_text_frame and shape.text.strip():
text += os.linesep
text += shape.text
# 收集每張投影片中的影像
self.cur_slide_images = []
# 保存投影片中的影像
for shape in slide.shapes:
self.drill_for_images(shape, page + 1, name)
# 將頁碼、收集到的文本和演講者備註作為新行寫入CSV檔
image_list = ''
if len(self.cur_slide_images) > 0:
image_list = ','.join(self.cur_slide_images) # 將影像列表轉換為逗號分隔的字串
# 將資訊寫入CSV檔
writer.writerow([eachfile, page + 1, text, slide.notes_slide.notes_text_frame.text, image_list])





在程式碼小抄中閱讀程式碼,體驗更佳:


這段程式碼執行了以下操作:

  • 對於每個 PowerPoint 檔,它載入演示文稿並逐一遍歷每張投影片。

  • 對於每張投影片,它收集文本和影像資訊,並將其格式化為 CSV 檔的一行。

  • CSV 檔的每一行包括檔名、頁碼、投影片文本、投影片的演講者備註以及影像列表。

  • 4 執行計畫

    將測試 ppt 拷貝到 input 目錄,點選 run 。

    當執行完成後,ppt 中有的圖片拷貝到 images 目錄,同時生成了一個 text.csv 。

    當然,我們也可以透過如下的命令直接執行:

    如果文章對你有所幫助,還請幫忙 點贊、在看、轉發 一下,你的支持會激勵作者輸出更高品質的文章,非常感謝!

    👇🏻 點選下方閱讀原文,獲取魚皮往期編程幹貨。

    往期推薦