Python运行系统命令,然后退出...将不会退出

时间:2011-07-24 13:41:03

标签: python exit

我有以下python代码:

os.system("C:/Python27/python.exe C:/GUI/TestGUI.py")
sys.exit(0)

它运行命令正常,弹出一个窗口。但是,它不会退出第一个脚本。它只是停留在那里,我最终不得不强行杀死这个过程。没有错误产生。发生了什么事?

4 个答案:

答案 0 :(得分:16)

而不是os.system使用subprocess.Popen

这会运行命令并且不等待它然后退出:

import subprocess
import sys

subprocess.Popen(["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"])
sys.exit(0)

请注意os.system(command)喜欢:

p = subprocess.Popen(command)
p.wait()

答案 1 :(得分:0)

import sys ,subprocess

subprocess.Popen(["C:/Python27/python.exe", "C:/GUI/TestGUI.py"])
sys.exit(0)

从子进程模块打开您要查找的内容。

答案 2 :(得分:0)

我建议使用os._exit而不是sys.exit,因为sys.exit不会退出程序但会引发异常级别,或者退出线程。 os._exit(-1)退出整个计划

答案 3 :(得分:0)

KeyboardInterrupts和信号只能由进程看到(即主线程)。如果嵌套命令由于某种文件读取或写入块而挂起,则无法使用任何键盘命令退出程序。

Why does a read-only open of a named pipe block?

如果无法消除磁盘块的来源,那么一种方法是将进程包装在线程中,这样就可以强制终止它。但是如果你这样做,你就有机会在磁盘上留下半写和损坏的文件。