2011-07-21 17 views
5

Skrypt My Applescript i Python znajduje się w bieżącym katalogu roboczym. Teraz muszę wywołać skrypt Python o nazwie test.py z uprawnieniami administratora z applescript za pomocą poleceń powłoki.Wywołanie skryptu w języku Python ze skryptu Applescript

Ten kod w Applescript daje PWD

tell application "Finder" to get folder of (path to me) as Unicode text 
set presentDir to POSIX path of result 

Ten kod w Applescript wywołuje skrypt Pythona z AppleScript ręcznie

do shell script "/Users/mymac/Documents/'Microsoft User Data'/test.py" 

Jak dodać presentDir do tego polecenia wzdłuż z uprawnieniami administratora?

edytować i aktualizować:

set py to "test.py " 
set calldir to workingDir & py 
do shell script calldir 

To daje błąd

error "sh: /Users/mymac/Documents/Microsoft: No such file or directory" number 127 

Ale wyświetlacz calldir dialogowe pokazuje

/Users/mymac/Documents/Microsoft User Data/test.py 

Powód:

rozbija się po słowie "Microsoft" w poleceniu skryptu powłoki z powodu spacji.

Odpowiedz

7

Jeśli wiesz, że skrypt jest w tym samym katalogu, wystarczy użyć:

do shell script presentDir & "test.py " user name "me" password "mypassword" with administrator privileges 

zauważy przestrzeń po test.py przed close-quote. Być może będziesz potrzebował napisu /test.py, a nie test.py, nie jestem pewien.

Mam tę informację od http://developer.apple.com/library/mac/#technotes/tn2065/_index.html.

EDIT: Spróbuj

set py to "test.py " 
set calldir to quoted form of workingDir & py 
do shell script calldir 
+0

ponieważ test.py znajduje się w tym samym katalogu co presentDir, Jak mogę zignorować użycie"/users/mymac/Documents/"Microsoft User Data"/test.py "w powłoce polecenie skryptu. – thinkcool

+0

Nie jestem pewien, czy rozumiem twoje pytanie, ale zredagowałem z moim najlepszym przypuszczeniem, co masz na myśli? – agf

+0

Mam zaktualizowane pytanie .. – thinkcool

0

Początkowej skrypt nie działa, ponieważ nie udało się uciec przestrzenie z backslash "\" jako takie: „/ Users/mymac/Dokumenty/Microsoft \ User \ Data/test.py "

Powiązane problemy