在Exception上自动重启Python脚本

时间:2017-08-01 23:14:45

标签: python batch-file

我有一个非常复杂的Python脚本,有时它只是一个错误,调试它的唯一方法是重新启动它,因为其他一切都没有意义,错误会立刻回来(我已经尝试了很多东西,所以请不要专注于那个)

我想要一个.bat脚本(不幸的是我在Windows上)重启我的python脚本,无论何时结束。 另一个python脚本也没问题。

我该怎么做? 提前致谢

1 个答案:

答案 0 :(得分:0)

set env=python.exe  
tasklist /FI "IMAGENAME eq python.exe" 2>NUL | find /I /N "python.exe">NUL if "%ERRORLEVEL%"!="0(
   start python script.py
)

从python执行python的其他方式

import subprocess
from subprocess import call

def processExists(processname):
    tlcall = 'TASKLIST', '/FI', 'imagename eq %s' % processname
    # shell=True hides the shell window, stdout to PIPE enables
    # communicate() to get the tasklist command result
    tlproc = subprocess.Popen(tlcall, shell=True, stdout=subprocess.PIPE)
    # trimming it to the actual lines with information
    tlout = tlproc.communicate()[0].strip().split('\r\n')
    # if TASKLIST returns single line without processname: it's not running
    if len(tlout) > 1 and processname in tlout[-1]:
        print('process "%s" is running!' % processname)
        return True
    else:
        print(tlout[0])
        print('process "%s" is NOT running!' % processname)
        return False



if not processExists('python.exe')
   call(["python", "your_file.py"])