首页 > 解决方案 > 如何在python的循环中打开和关闭可执行文件

问题描述

Python noob here,如果这是一个愚蠢的问题,我提前道歉。

所以,我写了这段代码

import subprocess
import os, signal
import time
timeout = time.time() + 60*5
count = 0

while True:
    print("running")
    if time.time() > timeout:
        break
    
    speedtest = subprocess.Popen("C:\Program Files\Speedtest\Speedtest.exe")
    time.sleep(30.0)
    speedtest.terminate()

我正在尝试打开 speedtest.exe,保持打开 30 秒并关闭它。我想继续重复这个5分钟。

但是,当进程第一次关闭并尝试重新打开时,我收到一条错误消息,指出另一个实例已经在运行。

我怎样才能解决这个问题 ?

标签: pythonsubprocess

解决方案


终止可执行文件后,您将不得不睡一会儿。这是因为终止需要一些时间,不幸的是,terminate 方法在编译时不会花费所有时间。它直接从中间终止到再次启动 exe。
通过等待,您正在等待可执行文件停止然后启动应用程序。不过,您将不得不稍微弄乱时间,因为通常会有随机的终止时间。


推荐阅读