2013-09-30 69 views
3

enter image description here在Automator中將變量賦值給外殼腳本中的變量使用

好的,這件事現在讓我發瘋了。所以操作1選擇一個文件夾(我想將該文件夾的路徑保存爲var_1)和操作3選擇一個文件(我想將該文件的路徑保存爲var_2)

最後。 。 。

var_1 = '/Users/Prometheus/Desktop/' 
var_2 = '/Users/Prometheus/Documents/a.txt' 

那麼如何在Python腳本中使用這些變量及其值呢?我不能使用sys.argv中,因爲它們被設置爲一些奇怪的變量

我通常把「詢問Finder項」>運行shell腳本,然後

import sys 

variable = open(argv[1]).read() 

,但我不能使用在這種情況下 。我的劇本都是用Python,所以我寧願留在Python,因爲我不知道任何其他語言

回答

10

的Automator的變量在Automator的工作流程才能使用。變量本身不能直接被shell腳本或Python腳本訪問。動作Run Shell Script允許您通過以下兩種方式之一將特定變量的值傳遞給shell腳本:通過stdin或通過將它們作爲執行參數傳遞給它們。對於這種用例,後者更容易。首先,您需要選擇Set Value of VariableGet Value of Variable操作中的Automator變量名稱,以便在操作之間保留所選的值。這裏就是我選擇兩個文件夾一個非常基本的工作流程例如:

enter image description hereenter image description here

+0

你不知道你到底有多少幫了我非常感謝你。你的解釋非常好,現在有意義了! –

0

你可以使用一個運行AppleScript動作像這樣顯示的對話框:

POSIX path of (choose folder default location (path to desktop)) 
result & linefeed & POSIX path of (choose file default location (path to desktop)) 

然後設置「通過輸入」到‘標準輸入’,在運行shell腳本動作和使用這樣的腳本:

import sys 
folder, file = sys.stdin.read().splitlines()