2017-04-18 7 views
1

나는 실행시 두 개의 매개 변수를 사용하는 applescript가 있습니다.파이썬 스크립트에서 applescript 인수를 전달하는 방법은 무엇입니까?

on run {targetBuddyPhone, targetMessage} 
    tell application "Messages" 
     set targetService to 1st service whose service type = iMessage 
     set targetBuddy to buddy targetBuddyPhone of targetService 
     send targetMessage to targetBuddy 
    end tell 
end run 

이 스크립트를 파이썬 스크립트 내에서 실행하고 싶습니다. 파이썬에서 애플 스크립트를 실행하는 방법을 알고 있지만 어떻게 인수를 주겠습니까? 다음은 현재 작성한 python 스크립트입니다.

#!/usr/bin/env python3 
import subprocess 

def run_applescript(script, *args): 
    p = subprocess.Popen(['arch', '-i386', 'osascript', '-e', script] + 
         [unicode(arg).encode('utf8') for arg in args], 
         stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
    err = p.wait() 
    if err: 
     raise RuntimeError(err, p.stderr.read()[:-1].decode('utf8')) 
    return p.stdout.read()[:-1].decode('utf8') 

내가 터미널에서이 코드를 실행하려고 후에 나타나는 오류는 다음과 같습니다 고급의 도움을

Traceback (most recent call last): 
    File "messageExecuter.py", line 14, in <module> 
    run_applescript("sendMessage.scpt",1111111111,"hello") 
    File "messageExecuter.py", line 11, in run_applescript 
    raise RuntimeError(err, p.stderr.read()[:-1].decode('utf8')) 
RuntimeError: (1, u'arch: posix_spawnp: osascript: Bad CPU type in executable') 

감사합니다!

답변

1

단서는 오류 메시지에 있습니다. osascript은 64 비트 전용이므로 인수 목록에서 'arch', '-i386'을 삭제하십시오.