【原文:Automator + Python】
基于 macOS 及其 Automator。
由于需要經常處理某些拍攝或下載的圖片、素材,針對不同的處理需求編寫了很多不同的腳本(例如圖像主題色提取算法、自然場景實驗材料處理工具(2) 等),一般的做法是將腳本保存到系統環境目錄下,然后在命令行中執行。但是對于圖片文件,最方便的方式當然是可以在 Finder 中直接選中并通過右鍵菜單執行相應的操作。
在 macOS 系統中,要做到這一點非常容易,甚至不需要額外的代碼,只需要系統自帶的輔助工具 Automator 即可:
Automator是蘋果公司為他們的Mac OS X系統開發的一款軟件。只要通過點擊拖拽鼠標等操作就可以將一系列動作組合成一個工作流,從而幫助你自動的(可重復的)完成一些復雜的工作。
上圖的右鍵菜單中最下方有一欄 Services 子選項,可以通過 Automator 的 Services 服務添加:
在 Automator 的工作界面中,可以從左側選擇對應的動作(Actions), 多個動作組成我們想要觸發的工作流程(Workflow)。在工作流程編輯區上方選擇 Service 對象為圖片文件,所在的應用環境是 Finder:
接下來選擇針對這一文件想要執行的腳本,可以在 Actions 搜索框中搜索 shell
,然后將 Run Shell Script 拖入 Workflow,可以在 Shell 選項下面選擇你想要執行的腳本,并直接在輸入框中輸入腳本,當然更好的方法是在系統 Shell 環境下執行已經保存好的 Python 腳本:
#!/usr/local/bin/python3
import sys
import os
for f in sys.stdin:
filename = f.strip()
if os.path.isfile(filename):
# some operations here
print(os.path.basename(filename))
else:
print("Image {} not found!".format(filename))
保存腳本并添加可執行權限。為了看到執行結果,可以添加Display Notification動作,同時可以插入一個Set Value of Variable來傳遞腳本輸出的結果:
最后保存這一工作流,即可在右鍵菜單中顯示該選項,執行完之后可以在通知欄提示執行結果。