将变量分配给Automator中的命令脚本

时间:2013-03-18 07:29:03

标签: macos variables automator

所以我是OSX上使用Automator的新手

我有一个非常简单的python函数

def test(input1,input2,output):
    print str(input1)
    print str(input2)
    print str(output)
    return 'function works'

我想要做的是生成一个简单的应用程序,要求输出的两个输入的文件位置和输出的文件目的地(输出的名称文本框)。

所以我一直在搞乱: Automator>选择工作流程>行动>档案&文件夹>询问Finder项目(创建其中两项)>公用事业>运行Shell脚本

所以我有三个问题:

1。如何在我的python脚本上将这些finder项分别分配给input1,input2变量?

2。我在哪里将脚本放在此代码附近?

import sys

for f in sys.stdin:
    print f,

3。 stdin,参数之间有什么区别?

2 个答案:

答案 0 :(得分:1)

完整的工作流程应该是这样的:

enter image description here

Run Shell Script步骤中,您应该将Pass Input:设置为as arguments,以便您可以使用sys.args数组。您的Python脚本可以像这样修改:

import sys

input1 = sys.argv[1]
input2 = sys.argv[2]
output = sys.argv[3]
print input1
print input2
print output

View Results步骤仅用于调试。

如果您将Pass Input:设置为to stdin,则输入参数将通过pipeline传递到您的脚本。

答案 1 :(得分:0)

您可以简单地使用AppleScript:

set inputA to (choose file with prompt "Please choose file one...")
set inputB to (choose file with prompt "Please choose file two…")
set outputA to (choose folder with prompt "Please choose a destination…")

return {((inputA as text) & return & inputB as text) & return & outputA}