如何在Python脚本中运行AppleScript?
如何在Python脚本中运行AppleScript?
这个问题说得很清楚了……
(显然是在Mac上)
4 个回答
0
我得到了输出结果... 下面就是:
import subprocess
import sys
for i in range(int(sys.argv[1])):
ip = str(sys.argv[2])
username = str(sys.argv[3])
pwd = str(sys.argv[4])
script = '''tell application "Terminal"
activate
do script with command "cd Desktop && python test_switch.py {ip} {username} {pwd}"
delay 15
end tell
'''
proc = subprocess.Popen(['osascript', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
stdout_output = proc.communicate(script.format(ip=ip, username=username, pwd=pwd))[0]
6
这是一个使用 subprocess
的版本,可以直接运行原始的 AppleScript,而不需要去处理那些复杂的引号和其他字符。这个版本简化了在这里找到的脚本,那个脚本还涉及参数化和正确的字符转义(适用于 Python 2.x)。
import subprocess
script = '''tell application "System Events"
activate
display dialog "Hello Cocoa!" with title "Sample Cocoa Dialog" default button 2
end tell
'''
proc = subprocess.Popen(['osascript', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
stdout_output = proc.communicate(script)[0]
print stdout_output
注意:如果你需要用同一个 Popen 实例执行多个脚本,那么你需要用
proc.stdin.write(script)
明确写入,并用proc.stdout.read()
读取,因为communicate()
会关闭输入和输出流。