Форум сайта python.su
0
Хочу сделать локальную страничку, на которую выводится директория с файлом. В этот файл нужно записывать обновляемые данные. В примере пока просто счетчик.
Проблема - то не создается страничка, то нет записи в файл. Подозрение, что httpd.serve_forever() и цикл счетчика взаимно блокируют друг друга. Подскажите способ избежать это противоречие.
import time from time import time as timer interval = 2 i=0 from http.server import HTTPServer, CGIHTTPRequestHandler server_address = ("127.0.0.1", 8081) httpd = HTTPServer(server_address, CGIHTTPRequestHandler) httpd.serve_forever() while True: time.sleep(interval - timer() % interval) i=i+1 my_file = open("Таймер.txt", "a") my_file.write(str(i)+ '\n') my_file.close()
Отредактировано ewro (Май 7, 2018 20:26:41)
Офлайн
253
Ну я бы не назвал это блокируют. Увас написано выполнить последовательно вот оно и выполняется. Пока сервер не окончит работу счетчик не запустится.
Преодолевать - треды использовать или asyncio или межпроцессное взаимодействие организовать.
Офлайн
0
Спасибо за ответ. Будем асинхрон изучать.
Офлайн