我正在從python 2.7呼叫一個外部程式,作為該程式的輸入,我有一些引數。我無法訪問我所呼叫的程式的代碼。對于這些引數的某些組合,程式崩潰并回傳一個退出代碼,但沒有錯誤;通常是 "行程結束,退出代碼-1073741819(0xC0000005)"。我想做的是:每當它以這個退出代碼失敗時,我希望它能以新的初始引數重新運行腳本。我試著做了一些事情:
parameters1 = [1, 2, 3, 4]
parameters2 = [2, 3, 4, 5]
j = 0]
q = 0 ]
while j == 0:
parameter1 = parameters1[q]
parameter2 = parameters2[q]
try:
f3d.run(引數1 =引數1, 引數2 =引數2)
j = 1: f3d.run(parameter1 = parameter1)
except:
pass。
uj5u.com熱心網友回復:
雖然問題相當不明確,但我認為這就是你要實作的目標:
runner.py:
runner.py:
SLEEP_TIME = 3。
print('starting run...')
while True:
exit_code = subprocess.call(['python', 'foo.py', parameter_1, parameter_2] )
print('Script Stopped. ')
if exit_code == -1073741819:
# 改變引數_1和引數_2在這里。
print('Sleeping for %d seconds'/span> % SLEEP_TIME)
time.sleep(SLEEP_TIME)
print('重新啟動...')
foo.py:
import sys
parameter_1 = sys.argv[1]
parameter_2 = sys.argv[2]
# 你的代碼在這里
你運行runner.py,它將一直無限地重新啟動。
另外,不需要的建議。不要使用 Python2.7。它已經過時了。
uj5u.com熱心網友回復:
非常感謝你的快速和良好的回答! 這就是我正在尋找的東西。 我不得不使用Python2.7來與外部軟體兼容。 祝你今天愉快,我的好先生/女士!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/309329.html
標籤:
