Вызов скрипта Python из Applescript - PullRequest
5 голосов
/ 22 июля 2011

Мои скрипты Applescript и Python находятся в текущем рабочем каталоге.Теперь мне нужно вызвать скрипт Python с именем test.py с правами администратора из appleScript, используя команды оболочки.

Этот код в Applescript дает pwd

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

Этот код в Applescript вызывает скрипт Python из Applescript вручную

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

Как добавить presentDir к этой команде вместе с привилегиями администратора?

EDIT и UPDATE:

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

Выдает ошибку

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

Но в диалоговом окне дисплея Calldir показывает

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

Причина:

после сбояслово «Microsoft» в команде сценария оболочки из-за пробела.

Ответы [ 2 ]

7 голосов
/ 22 июля 2011

Если вы знаете, что скрипт находится в той же директории, просто используйте:

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

Обратите внимание на пробел после test.py перед закрывающей кавычкой. Возможно, вам понадобится строка /test.py, а не test.py, я не уверен.

Я получил эту информацию от http://developer.apple.com/library/mac/#technotes/tn2065/_index.html.

Редактировать: Попробуйте

set py to "test.py "
set calldir to quoted form of workingDir & py
do shell script calldir
0 голосов
/ 15 ноября 2013

Ваш первоначальный сценарий не работал, потому что вы не избежали пробелов с обратной косой чертой "\", например: "/ Users / mymac / Documents / Microsoft \ User \ Data / test.py"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...