通过终端从Python关闭程序
我有一个函数,它用Xfoil来处理一个数据文件。不过,我想把一些细节整理一下。因为我在用OS X 10.8.2,所以Xfoil需要用X11(通过XQuartz运行)来生成图表等。我希望我的函数在完成后也能关闭XQuartz应用,所以我尝试了:
os.system("""'echo osascript -e 'tell application "XQuartz" to quit'""")
但是没有成功。我用的是三重双引号来把整个内容当作一个字符串,并且已经导入了os模块。我认为“osascript -e 'tell application "XQuartz" to quit'”是一个Apple脚本,我想用它和echo函数一起使用。
1 个回答
4
你运行的命令不对;你应该直接使用 osascript
,而不是 echo
。而且你命令里的单引号 不平衡(你有三个单引号)。
其实用 subprocess
模块 会更简单一些:
import subprocess
subprocess.call(['osascript', '-e', 'tell application "XQuartz" to quit'])
因为 subprocess
接受的是一个参数列表,所以你不需要太担心引号的问题。