2

我有一个使用 Xfoil 处理数据文件的函数。但是,我正在尝试整理一些松散的结局。当我运行 OS X 10.8.2 时,Xfoil 使用 X11(作为 XQuartz 运行)来创建其图形等。我希望我的函数在完成后也关闭 XQuartz 应用程序,所以我正在尝试:

os.system("""'echo osascript -e 'tell application "XQuartz" to quit'""")

但我没有运气。我正在使用三重双引号将整个内容作为字符串并导入 os。我相信“osascript -e '告诉应用程序“XQuartz”退出'”是我试图与 echo 函数一起使用的 Apple 脚本。

4

1 回答 1

4

您正在运行错误的命令;您正在使用echo而不是直接使用,并且命令中包含osascript的单引号不平衡(您有 3 个)。

改用该subprocess模块会更容易:

import subprocess

subprocess.call(['osascript', '-e', 'tell application "XQuartz" to quit'])

因为subprocess需要一个过程参数列表,所以您不必(太多)担心引用。

于 2013-02-18T18:15:22.893 回答