2017-02-16 2 views
1

У меня есть файл bash, в котором я выполняю код python в цикле for несколько раз. Я хочу установить таймаут, чтобы, если код python занимает более определенного времени, мы переходим к следующей итерации. Как добавить тайм-аут в мою строку кода bash при компиляции и запуске файла python? Это текущая строка я использую для запуска кода Python:Аргументы командной строки - установить ограничение тайм-аута при запуске кода Python

python hw.py 

Я хочу иметь что-то вроде этого:

python hw.py timeout=120 
+0

Вы хотите логику в 'bash' или в' python'? – Inian

+0

Мне нужно это в bash, я не могу редактировать файл python, я каждый раз вношу разные входы в файл python в цикле for и хочу, чтобы он убил python с лимитом тайм-аута. –

ответ

1

Вы можете использовать команду timeout в bash:

timeout 120 python hw.py 

Это будет убить процесс питона, если он выполняется в течение более 120 секунд.

+0

Спасибо, что мне нужно. –

0

Предположим, вы хотите, чтобы аргумент, который будет проанализирован в сценарий Python.

Попробуйте argparse:

if __name__ == '__main__': 
    parser = argparse.ArgumentParser() 
    parser.add_argument('--timeout', help='timeout of script',action = 'store') 
    args = parser.parse_args() 

Анализировать args.timeout сценарию, что вам нужно.

from time import time 
start = time() 
for loop: # the for loop you mentioned 

    if (time() - start) > timeout: 
     break 
+0

Спасибо за ответ, но я не могу редактировать файлы python. –

Смежные вопросы