Applescript返回"

时间:2014-03-27 23:00:16

标签: string applescript automator dialog

enter image description here获得结果:

"<NSAppleEventDescriptor: [ 1 ]>"

我在Automator的Applescript Shell中有一个Dialogue Box

display dialog "¿ What database did you use for your sequences ?" buttons {"RefSeq", "Ensembl"} default button 2
set the button_pressed to the button returned of the result
if the button_pressed is "RefSeq" then
    return 0
else if the button_pressed is "Ensembl" then
    return 1
end if

为什么不打印字符串?我使用&#34;设置为变量&#34;将其设置为变量。然后我使用&#34;获取变量&#34;

在我的Python Shell脚本之前获取变量 我在Python Shell脚本中使用

var_1 = sys.argv[1]

1 个答案:

答案 0 :(得分:0)

你是如何让它在Python中打印字符串的呢?

此Python脚本根据对AppleScript的响应打印“1”或“0”:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from subprocess import Popen, PIPE

script = '''
display dialog "¿ What database did you use for your sequences ?" buttons {"RefSeq", "Ensembl"} default button 2
set the button_pressed to the button returned of the result
if the button_pressed is "RefSeq" then
    return 0
else if the button_pressed is "Ensembl" then
    return 1
end if
'''

macosx = Popen('/usr/bin/osascript', stdin=PIPE, stdout=PIPE, stderr=PIPE)
(response, error) = macosx.communicate(script)
response = response.strip()

print response

为了通过Automator中的“Run Shell Script”使用它,AppleScript根据我对Apple的Creating Shell Script Actions的读取,必须将值作为字符串返回。 “运行Shell脚本”操作似乎不执行automatic type conversions

在您的示例脚本中,您可以通过将“return 0”和“return 1”更改为“return”0“”和“return”1“”来解决此问题:

Run AppleScript return values must be strings

我使用“变量”的“设置/获取值”以及“运行AppleScript”和“运行Shell脚本”之间的直接连接对此进行了测试。在每种情况下都应用相同的行为。