从python使用终端关闭程序

时间:2013-02-18 18:12:36

标签: 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 -e”告诉应用程序“XQuartz”退出'“是一个Apple脚本,我试图使用echo函数。

1 个答案:

答案 0 :(得分:4)

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

使用subprocess module代替更容易:

import subprocess

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

因为subprocess获取了一个过程参数列表,所以你不必担心(很多)引用。