我对计算机软件术语不太熟悉(道歉)。
当我在GUI上按下“开始”按钮(QPushButton)时,以下命令在命令提示符中执行脚本 filename.dut ,如下所示:
subprocess.call('launcher.exe localhost filename.dut',shell = True)。
我希望能够以类似的方式终止脚本,即按下GUI上的“停止”按钮,该按钮将在命令提示符下写入终止脚本的适当命令。 我想我可以在这个帖子中找到解决方案:Ending external programs with Python。建议的解决方案是:
import subprocess
taskname = '...'
task = 'taskkill /im ' + taskname + ' /f'
subprocess.check_call(task, shell=True)
我的问题是如何获取任务名称?
非常感谢任何建议或替代解决方案。
答案 0 :(得分:1)
如果您使用subprocess
,则无需调用任何外部实用程序。
subprocess.Popen
类提供了terminate
方法。
要使用它,您需要将subprocess.call(...)
替换为subprocess.Popen(...)
,后者会返回Popen
个实例。例如,
task = subprocess.Popen('launcher.exe localhost filename.dut', shell=True)
# some time later
task.terminate()
请注意,与call
不同,普通Popen
不会等待进程完成。
有关详细信息,请参阅手册:http://docs.python.org/2/library/subprocess.html