人工智慧時代,最需要學習的程式語言是:python 。筆者是個 python 小白,昨天花了兩個小時,第一次成功執行起來 python 專案 。
專案是 powerpoint-extractor ,可以將 ppt 檔案中的圖片提取出來,並輸出到固定的目錄。
1 安裝 python 環境
首先開啟終端,開啟後輸入 python3 。確定電腦上是否已安裝 python3,如果輸入 python 是檢視 mac 上的自帶版本。
命令:python3【直接回車】
出現下面是頁面,表示已經安裝python3 【退出時可輸入:exit()然後點回車】
若沒有安裝,安裝 python3 如下兩種方式:
-
第一種方法 brew 安裝 python3 :brew install python3
-
第二種方法 官網 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 。
當然,我們也可以透過如下的命令直接執行:
如果我的文章對你有所幫助,還請幫忙點贊、在看、轉發一下,你的支援會激勵我輸出更高質量的文章,非常感謝!