У меня есть python script, который будет запущен, который в основном собирает данные и вставляет их в базу данных, основываясь на последнем обновлении базы данных. В основном, я хочу, чтобы этот script продолжал работать и никогда не останавливался, и снова запускать его после завершения. Какой был бы лучший способ сделать это?
Я рассмотрел использование cronjob и создание файла блокировки и просто запускаю script каждую минуту, но я чувствую, что может быть более эффективным способом.
Этот script в настоящее время написан на python 2.7 на OS ubuntu
Спасибо за помощь!
Лучший ответ:
Вы можете обернуть свой script в
while True: .
или с помощью bash script:
while true ; do yourpythonscript.py done
os.execv(sys.executable, [sys.executable] + sys.argv)
Оберните свой код в операторе while:
while 1==1: #this will always happen yourscripthere
Попросите его запустить сам, с теми же аргументами, вероятно, chmod +x it
os.execv(__file__, sys.argv)
вы также можете запросить у своего пользователя, хотите ли они снова запустить программу в обертке.
Как работает return в Python / Как работает return в Питоне
prompt = input(«would you like to run the program?») while prompt == «yes»: . . prompt = input(«would you like to run program again?»)
while True: execfile(«test.py»)
Это будет продолжать выполнение test.py снова и снова.
Источник: techarks.ru
Как запустить код заново в Python?
Я захотел сделать простенькую игру на Python. Но вот проблема. Я не знаю какой командой запустить код заново. Я пошол в Гугл и там били такие вопросы. Но ответи на них мне не помогли.
Мне нада какой-то PiP, либо функция чтобы запустить код заново. Методом создания функции давайте не будем))
Если нада вот код, согласен простенький, но я еще учусь))
import random
import time
random = ( random.randint(1, 2) )
number = float( input( ‘Введите число 1 либо 2. Если угадаете получите приз!’ ))
#угадал
if random == number:
a = str( input( ‘Вы угадали!! Дайте номер своего елект кошелька и ми начислим деньги. :’ ))
print( ‘Отлично!! Деньги прийдут через 5 минут.’ )
exit = input( ‘Програма завершена! Троян закроется через 15 секунд.n Чтобы закрыть програму press fn Спасибо что посмотрел до конца))) ‘ )
time.sleep(15)
elif exit == ‘f’:
SystemExit(1)
#не угадал
elif random != number:
b = input( ‘Вы не угадали(( Может попробуем снова ? (да, нет) :’ )
elif b == ‘нет’:
SystemExit(1)
- Вопрос задан более двух лет назад
- 10141 просмотр
1 комментарий
Средний 1 комментарий
Источник: qna.habr.com
Python-сообщество
Импорт модулей. Функция reload. Как перезагрузить модуль в Python
- Начало
- » Python для новичков
- » Команда для перезапуска программы
#1 Ноя. 5, 2012 17:25:44
Команда для перезапуска программы
Я хочу создать примерно такую прогу
x=input(«»» 1. математика 2. физика 3. химия 4. биология Для начала упражнения выберите номер предмета. Для информации о предмете, перед номером упражнения добавьте ‘help’ «»») if x==’help1′: f=input(«»»‘ блаблабларазная инфа Для начала упражнений в данном предмете, нажмите ‘go’. Для выхода нажмите ‘quit’ Для возврата к предыдущему выбору нажмите ‘re’. «»») if f==’re’:
Так что написать, что был перезапуск скрипта(проги), т.е. чтоб мне снова вывел запрос(перешло к началу скрипта) будто я снова прогу запустил?
пробовал с reload, который по сути должен был подойти, но не прокатило хз почему
import imp imp.reload(Pick) #Pick — название проги, лежит в директории установленной python, и чрез import(pick) без проблем вызывается Traceback (most recent call last): File «», line 1, in module> imp.reload(Pick) NameError: name ‘Pick’ is not defined
Отредактировано AlexSSpirit (Ноя. 5, 2012 17:28:48)
Источник: python.su