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

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

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽