【问题标题】:Call a Python script from a Applescript从 Applescript 调用 Python 脚本
【发布时间】:2011-10-10 13:30:14
【问题描述】:

我的 Applescript 和 Python 脚本在当前工作目录中。 现在我需要使用 shell 命令从 applescript 以管理员权限调用名为 test.py 的 Python 脚本。

Applescript 中的这段代码给出了密码

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

Applescript 中的这段代码手动从 Applescript 调用 python 脚本

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

如何将 presentDir 与管理员权限一起添加到该命令中?

编辑和更新:

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

原因:

由于空格,它在 shell 脚本命令中的“Microsoft”一词之后被分解。

【问题讨论】:

    标签: python macos shell applescript


    【解决方案1】:

    如果您知道脚本在同一目录中,只需使用:

    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
    

    【讨论】:

    • 由于test.py在presentDir的同一目录下,如何忽略shell脚本命令中“/users/mymac/Documents/'Microsoft User Data'/test.py”的使用.
    • 我不确定我是否理解您的问题,但我根据您的意思进行了编辑?
    • 引用var使用quoted form of var
    【解决方案2】:

    您的初始脚本不起作用,因为您没有使用反斜杠“\”转义空格,如下所示: "/Users/mymac/Documents/Microsoft\User\Data/test.py"

    【讨论】:

      猜你喜欢
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 2014-06-25
      • 1970-01-01
      • 2022-12-11
      • 2018-03-25
      相关资源
      最近更新 更多