Как зациклить выполнение скрипта с таймаутом в n секунд?
import requests
url = "https://example.com"
headers = {
"key": "12345678"
}
response = requests.get(url, headers=headers)
data = response.json()
links = [x['Url'] for x in data['result']['List']]
res = [i.replace('.com', '.ru').replace('work.', 'host.')
for i in links if '//work.' in i]
print(*res, sep='\n')
with open('output.txt', "w") as file:
for i in res:
file.write(i + '\n')
Ответы (2 шт):
Автор решения: Dima
→ Ссылка
Для этого может пригодиться модуль time и функция модуля time.sleep(n). Пример кода:
import requests
import time
while True:
url = "https://example.com"
response = requests.get(url)
time.sleep(10) #10 - кол-во секунд таймаута
print(response)
Автор решения: quswadress
→ Ссылка
Вы можете весь скрипт поместить в функцию, и вызывать её в while True вместе с time.sleep.
import requests
import time
def do_some_work(): # Функция с периодически запускающимся 'скриптом'
url = "https://example.com"
headers = {
"key": "12345678"
}
response = requests.get(url, headers=headers)
data = response.json()
links = [x['Url'] for x in data['result']['List']]
res = [i.replace('.com', '.ru').replace('work.', 'host.')
for i in links if '//work.' in i]
print(*res, sep='\n')
with open('output.txt', "w") as file:
for i in res:
file.write(i + '\n')
N = 10
while True: # Бесконечный цикл в котором
do_some_work() # Мы запускаем основной код
time.sleep(N) # и засыпаем на N секунд
Или, если N достаточно большое, вы можете запускать сам файл периодически с помощью функций ОС, для Unix подобных систем с помощью cron(Гайд), для Windows с помощью планировщика задач(Гайд).