@loxnemamont

Как одновременно писать в один файл из разных потоков в python?

Всем привет! Только начинаю изучать Python, решил написать простой чекер - скрипт заходит по списку сайтов и проверяет вхождение указанной подстроки в коде страницы. Выглядит все это примерно так.
def get_html(url):
	try:
		response = urllib.request.urlopen(url, timeout=5)
	except Exception:
		return 'error'
	return str(response.read())

def check(html):
	if 'customtext' in html:
		return True
	else:
		return False

Решил прикрутить многопоточность по данному мануалу - toly.github.io/blog/2014/02/13/parallelism-in-one-line но никак не могу понять как реализовать запись результатов в 1 файл из разных потоков. К примеру, если check() возвращает True - исходный домен пишется в файл good.txt, если False - в bad.txt.
Заранее признателен за любые советы!
  • Вопрос задан
  • 1402 просмотра
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
ну, если "в файл", то открывай, дописывай, закрывай
по-моему, на дозапись тоже можно открыть одновременно

а серьезные пацаны используют модуль logging
Ответ написан
Комментировать
mututunus
@mututunus
Backend developer (Python, Golang)
Зачем вам тут многопоточность? Для этой задачи отлично подойдет asyncio.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы