Как зациклить выполнение кода?
У меня есть часть кода:
app.start()
targets_file = open('targets.txt', 'r').readlines()
targets = [target for target in targets_file]
for target_user in targets:
import pyrogram
try:
app.send_message(target_user, msg)
# time.sleep(randint(2, 6))
except pyrogram.errors.bad_request_400.PeerFlood as e:
print(e)
pass
except pyrogram.errors.bad_request_400.UsernameNotOccupied as e:
print(e)
pass
except:
pass
app.stop()
Мне нужно зациклить его чтобы он повторялся каждый 10 минут. Пытался через while True - не получается. Что думаете? Вот как я пробовал:
app.start()
targets_file = open('targets.txt', 'r').readlines()
targets = [target for target in targets_file]
for target_user in targets:
import pyrogram
While True:
try:
app.send_message(target_user, msg)
# time.sleep(randint(2, 6))
except pyrogram.errors.bad_request_400.PeerFlood as e:
print(e)
pass
except pyrogram.errors.bad_request_400.UsernameNotOccupied as e:
print(e)
pass
except:
pass
time.sleep(600)
app.stop()
Ответы (2 шт):
Автор решения: Kowl
→ Ссылка
Решил всё сам без thread. Нужно обернуть код в функцию (я назвал её app1) и достаточно в конце кода дописать:
t=1
while t == 1:
app1()
time.sleep(300)
И всё получится.
Автор решения: Slayer Leon
→ Ссылка
- Само разумеющееся, но на всякий случай напишу, что нельзя забывать про import time
- Цикл while будет работать и каждые 10 минут, если строку time.sleep(600) указать внутри цикла while, а не за его пределами, как указано во 2 фрагменте кода, если же тебе надо принудить цикл for к повторению через каждые 10 минут, то while прописывай поверх for, а time.sleep(600) в конце цикла while напротив for.
- На всякий случай опять же, в коде должно писаться не While, а while (с маленькой буквы). Прокомментировать работу с pyrogram не могу, ибо не доводилось с ней работать.