我正在创建一个小型自动化脚本来与游戏交互。游戏很容易崩溃,但以一种不可预知的方式(30 分钟到 3 小时后,取决于游戏中发生的情况)。正因为如此,我在下面写了一个小脚本,理想情况下会杀死程序,杀死检查崩溃并提供重启的崩溃监控客户端,然后重新启动游戏并恢复。问题是我从来没有达到过 subprocess.run()
它再次启动游戏,但之后不允许任何代码运行。
import psutil
import time
import subprocess
def main():
'''Process kill function'''
for proc in psutil.process_iter():
# check whether the process name matches
# print(proc.name())
if any(procstr in proc.name() for procstr in\
['GameName.exe']):
print(f'Killing {proc.name()}')
proc.kill()
time.sleep(5)
for proc in psutil.process_iter():
# check whether the process name matches
# print(proc.name())
if any(procstr in proc.name() for procstr in\
['GameCrashMonitor.exe']):
print(f'Killing {proc.name()}')
proc.kill()
time.sleep(10)
subprocess.run(r'PathToGame.exe')
print(time.time())
if __name__ == "__main__":
main()
该程序成功到达 subprocess.call,再次启动游戏,然后 python 挂起。我无法控制 ipython 上的 c 来阻止它。我使用 Spyder,它甚至使我的任务栏上的 spyder 图标错误并消失。
qq_花开花谢_0
相关分类