Automator + Python

【原文:Automator + Python


基于 macOS 及其 Automator。

由于需要經常處理某些拍攝或下載的圖片、素材,針對不同的處理需求編寫了很多不同的腳本(例如圖像主題色提取算法自然場景實驗材料處理工具(2) 等),一般的做法是將腳本保存到系統環境目錄下,然后在命令行中執行。但是對于圖片文件,最方便的方式當然是可以在 Finder 中直接選中并通過右鍵菜單執行相應的操作。

Screen Shot 2017-01-05 at 8.25.05 PM.png

在 macOS 系統中,要做到這一點非常容易,甚至不需要額外的代碼,只需要系統自帶的輔助工具 Automator 即可:

Automator是蘋果公司為他們的Mac OS X系統開發的一款軟件。只要通過點擊拖拽鼠標等操作就可以將一系列動作組合成一個工作流,從而幫助你自動的(可重復的)完成一些復雜的工作。

Auto.png

上圖的右鍵菜單中最下方有一欄 Services 子選項,可以通過 Automator 的 Services 服務添加:

Untitled.jpg

在 Automator 的工作界面中,可以從左側選擇對應的動作(Actions), 多個動作組成我們想要觸發的工作流程(Workflow)。在工作流程編輯區上方選擇 Service 對象為圖片文件,所在的應用環境是 Finder

Screen_Shot_2017-01-05_at_8_42_11_PM.jpg

接下來選擇針對這一文件想要執行的腳本,可以在 Actions 搜索框中搜索 shell,然后將 Run Shell Script 拖入 Workflow,可以在 Shell 選項下面選擇你想要執行的腳本,并直接在輸入框中輸入腳本,當然更好的方法是在系統 Shell 環境下執行已經保存好的 Python 腳本:

Screen_Shot_2017-01-05_at_8_48_27_PM.jpg
#!/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來傳遞腳本輸出的結果:

Pix_-_啥也沒干.jpg

最后保存這一工作流,即可在右鍵菜單中顯示該選項,執行完之后可以在通知欄提示執行結果。

2017-01-05 21_32_39.gif
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容