一个
subprocess
的版本,它允许按原样运行一个原始的苹果脚本,而不必转义引号和其他可能很麻烦的字符。它是一个简化的脚本版本,可以发现
here
它还可以进行参数化和适当的转义 (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()
会关闭输入和输出流。