Задать вопрос
@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.
Заранее признателен за любые советы!
  • Вопрос задан
  • 1464 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
ну, если "в файл", то открывай, дописывай, закрывай
по-моему, на дозапись тоже можно открыть одновременно

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

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

Похожие вопросы