2017-08-01 44 views
0

我有一個非常複雜的Python腳本正在進行,有時它只是得到一個錯誤,而調試它的唯一方法就是重新啓動它,因爲一切都沒有意義,錯誤會來(我已經嘗試了很多東西,所以請不要專注於此)在例外情況下自動重啓Python腳本

我想要一個.bat腳本(不幸的是,在Windows上),它會在每次結束時重新啓動我的python腳本。 另一個python腳本也很好。

我該怎麼做?提前 感謝蟒蛇

+0

剛剛創建的BAT文件中添加設置ENV = python.exe 開始蟒蛇script.py –

+0

但只啓動Python文件,它不會重新啓動它,當它崩潰時? – user8393645

+0

tasklist/FI「IMAGENAME eq python.exe」2> NUL | find/I/N「python.exe」> NUL if「%ERRORLEVEL%」==「0」echo程序正在運行 –

回答

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

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"]) 
+0

?這仍然不是明確的代碼,它也不執行我的python文件,我必須將文件夾放在.py所在的位置? – user8393645

+0

加蟒蛇環境變量設置.. ENV = 「到您的路徑python.exe」 –

+0

對不起,我沒有批 – user8393645

相關問題