1

我对计算机软件术语不是很熟悉(我很抱歉)。

  • 我在 Python 中设计了一个 GUI,假设按下适当的按钮(在 GUI 上)时执行和/或终止脚本。
  • 当我在 GUI 上按下“开始”按钮 (QPushButton) 时,以下命令会在命令提示符中执行脚本filename.dut,如下所示:
    subprocess.call ('launcher.exe localhost filename.dut', shell=True)。

  • 我希望能够以类似的方式终止脚本,即按下 GUI 上的“停止”按钮,该按钮将在命令提示符中写入适当的命令来终止脚本。我想我可以在这个线程中找到解决方案:用 Python 结束外部程序。建议的解决方案是:

    import subprocess        
    taskname = '...'        
    task = 'taskkill /im ' + taskname + ' /f'         
    subprocess.check_call(task, shell=True)
    
  • 我的问题是如何获得任务名称

任何建议或替代解决方案将不胜感激。

4

1 回答 1

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,plainPopen不会等待进程完成。

有关详细信息,请参阅手册:http: //docs.python.org/2/library/subprocess.html

于 2013-07-30T20:03:55.517 回答