Java 程式設計師第一次執行 Python 專案,使用 python-pptx 提取 ppt 中的文字和圖片

勇哥编程游记發表於2024-03-11

人工智慧時代,最需要學習的程式語言是:python 。筆者是個 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 git@github.com: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 。


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


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

相關文章