花了兩個小時,第一次運行起來 Python 工程
人工智能時代,最需要學(xué)習(xí)的編程語言是:python 。
筆者是個 python 小白,昨天花了兩個小時,第一次成功運行起來 python 項目 。
圖片
項目是 powerpoint-extractor ,可以將 ppt 文件中的圖片提取出來,并輸出到固定的目錄。
1 安裝 python 環(huán)境
首先打開終端,打開后輸入 python3 。確定電腦上是否已安裝 python3,如果輸入 python 是查看 mac 上的自帶版本。
命令:python3【直接回車】
出現(xiàn)下面是頁面,表示已經(jīng)安裝python3 【退出時可輸入:exit()然后點回車】
圖片
若沒有安裝,安裝 python3 如下兩種方式:
- 第一種方法 brew 安裝 python3 :brew install python3
- 第二種方法 官網(wǎng) Python Releases for macOS ,根據(jù)自己的需求下載自己需要的版本下載 。
圖片
2 項目 powerpoint-extractor
通過 git 命令 clone 該項目 :
git clone git@github.com:2TallTyler/powerpoint-extractor.git
因為項目依賴 python-pptx 組件,通過清華的鏡像執(zhí)行如下的命令:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx
圖片
執(zhí)行完成之后,可以通過 pip3 list 命令查看已安裝包列表 :
圖片
3 PyCharm 配置
通過 PyCharm 打開該項目 :
圖片
上圖,我們發(fā)現(xiàn) python 解釋器并沒有配置好 ,py 腳本顯示 import 包失敗 。
圖片
點擊添加 python 解釋器按鈕,勾選繼承全局包,并確認好 python3 的執(zhí)行目錄是否正確,點擊 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) # 將圖像列表轉(zhuǎn)換為逗號分隔的字符串
# 將信息寫入CSV文件
writer.writerow([eachfile, page + 1, text, slide.notes_slide.notes_text_frame.text, image_list])
這段代碼執(zhí)行了以下操作:
- 對于每個 PowerPoint 文件,它加載演示文稿并逐一遍歷每張幻燈片。
- 對于每張幻燈片,它收集文本和圖像信息,并將其格式化為 CSV 文件的一行。
- CSV 文件的每一行包括文件名、頁碼、幻燈片文本、幻燈片的演講者備注以及圖像列表。
4 運行項目
將測試 ppt 拷貝到 input 目錄,點擊 run 。
圖片
當執(zhí)行完成后,ppt 中有的圖片拷貝到 images 目錄,同時生成了一個 text.csv 。
圖片
當然,我們也可以通過如下的命令直接執(zhí)行:
圖片