2011-07-21 4 views
5

Mon script Applescript et Python se trouvent dans le répertoire de travail actuel. Maintenant, j'ai besoin d'appeler le script Python nommé test.py avec les privilèges admin de l'applescript en utilisant les commandes du shell.Appeler un script Python à partir d'un Applescript

Ce code AppleScript donne le PWD

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

Ce code AppleScript appelle un script python à partir d'un Applescript manuellement

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

Comment ajouter le presentDir à cette commande le long avec des privilèges d'administrateur?

EDIT et UPDATE:

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

Il donne une erreur

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

Mais écran de dialogue calldir montre

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

Raison:

il est cassé après le mot «Microsoft» dans la commande de script shell à cause de l'espace.

Répondre

7

Si vous connaissez le script est dans le même répertoire, il suffit d'utiliser:

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

Notez l'espace après test.py avant la citation à proximité. Vous pouvez éventuellement besoin de la chaîne pour être /test.py, plutôt que test.py, je ne suis pas sûr. J'ai reçu cette information de http://developer.apple.com/library/mac/#technotes/tn2065/_index.html.

Modifier: Essayez

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

puisque test.py se trouve dans le même répertoire que presentDir, Comment puis-je ignorer l'utilisation de"/users/mymac/Documents/'Données utilisateur Microsoft'/test.py "dans le shell commande de script. – thinkcool

+0

Je ne suis pas sûr d'avoir compris votre question, mais j'ai modifié ma meilleure estimation pour ce que vous voulez dire? – agf

+0

J'ai une question mise à jour .. – thinkcool

0

Votre script initial ne fonctionne pas parce que vous ne l'avez pas échapper les espaces avec une barre oblique inverse "\" en tant que tel: «/Users/MyMac/Documents/Microsoft \ User \ Data/test.py "

Questions connexes