使用python中的终端关闭程序

使用python中的终端关闭程序,python,macos,python-2.7,applescript,Python,Macos,Python 2.7,Applescript,我有一个使用Xfoil处理数据文件的函数。然而,我正在努力整理一些零散的东西。在我运行OS X 10.8.2时,Xfoil使用X11(以XQuartz的身份运行)创建其图形等。 我希望我的功能在XQuartz应用程序完成后也能关闭它,因此我正在尝试: os.system("""'echo osascript -e 'tell application "XQuartz" to quit'""") 但是我没有运气。我使用三个双倒逗号将整个内容作为字符串,操作系统被导入。我相信“osascript-

我有一个使用Xfoil处理数据文件的函数。然而,我正在努力整理一些零散的东西。在我运行OS X 10.8.2时,Xfoil使用X11(以XQuartz的身份运行)创建其图形等。 我希望我的功能在XQuartz应用程序完成后也能关闭它,因此我正在尝试:

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

但是我没有运气。我使用三个双倒逗号将整个内容作为字符串,操作系统被导入。我相信“osascript-e'告诉应用程序“XQuartz”退出'”是一个苹果脚本,我正试图将其与echo函数一起使用。

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

使用以下选项将更容易:


因为
子流程
包含一个流程参数列表,所以您不必担心引用。

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

使用以下选项将更容易:

因为
subprocess
接受一个进程参数列表,所以不必担心引用

import subprocess

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