A subprocess
версия, которая позволяет запускать оригинальный сценарий Apple как есть, без необходимости использовать кавычки и другие символы, которые могут быть сложными.Это упрощенная версия скрипта, найденная здесь , которая также выполняет параметризацию и правильное экранирование (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()
закроет входной и выходной потоки.