Anonymous
x.split('title="', 1)[1].split('"', 1)[0]
Только таких строчек у меня очень много
Туночка️
есть какой-то способ создать список всех файлов в директории как например делает git add . я вроде написал скрипт, но когда файйлов много он виснет https://pastebin.com/Ga7kcMZz
Anonymous
самой переменной изначально присвоено 0
koder
тут вывожу после всех процессов. вывод ноль
ты не ждешь их завершения и процессы не могут обратно значения переменных передавать
koder
Только таких строчек у меня очень много
тогда не понятно в чем вопрос. каких - "таких". Если нужно в общем случае парсить html - то вверху правильно написали. Берем персер
Anonymous
ты не ждешь их завершения и процессы не могут обратно значения переменных передавать
не, я в смысле до завершения работы кода. всеравно выводить 0
Alex
для работы с путями фс есть функции в модулях os.path и pathlib
Alex
ищешь нужные элементы
Alex
и получаешь значение аттрибута title
Alex
поиск элементов можно сделать при помощи ф-ций DOM или XPath
koder
если он там поддерживаться
Alex
IIRC поддерживается
koder
не, я в смысле до завершения работы кода. всеравно выводить 0
я не понимаю что ты говоришь. А какой он должен быть до завершения работы? Он у тебя всегда будет один и тот же, это процессы
koder
но даже если бы ты передавал его обратно - все равно нужно сделать join
Anonymous
join()
join() вроде ждет завершения всех процессов
Damir
join() вроде ждет завершения всех процессов
Того, на котором ты его вызвал. У тебя процессы не отрабатывают
Anonymous
но даже если бы ты передавал его обратно - все равно нужно сделать join
я не передаю обратно. хотел из метода сохранить
koder
я не передаю обратно. хотел из метода сохранить
прочти, плз, внимательно то что я написал
Anonymous
Того, на котором ты его вызвал. У тебя процессы не отрабатывают
а как лучше вернуть значение отдельных процессов?
Damir
а как лучше вернуть значение отдельных процессов?
В этом случае лучше их вообще не использовать
Anonymous
пробовал Pool, но он вернул работу всех процессов
Alex
@ruslan001 в общем мои опасения подтвердились. pywin32 говна кусок, который вместо прямого консистентного враппера поверх win32 api добавляет свою логику сверху, иногда не всегда корректную https://sourceforge.net/p/pywin32/bugs/584/
Anonymous
В этом случае лучше их вообще не использовать
ладно. если я вызову join для каждого, у меня будет сохраняться значения?
Damir
Да
Anonymous
Да
спс. ща проверю))
koder
Да
ты уверен, что данные из других процессов передадутся в родительский? :D
koder
как, например, все эти процессы будут += между собой шарить
koder
он что - будет синкать на каждый += память между всеми дочерними процессами?
koder
я так понимаю шарятся только ограниченное кличество типов данных, специально для этого предназначенных
Alex
если это обычный список, то нет изменение списка в субпроцессе никак не влияет на родительский процесс
koder
мне всего лишь нужно сохранить в классе
да нихрена ты не сохранишь. Это процессы, а не потоки. У каждого их них своя память
Alex
ты знаешь как вообще эти типы в субпроцессы передаются?
Alex
pickle, ессно
ну я не у тебя спрашивал =)
koder
под линуксом можно было бы воспользоваться cow для памяти но, кажется, он так не делает
Alex
там в общем-то pickle + pipe
Anonymous
Soup.findAll не?
Уже всё
Damir
Alex
и никак иначе если это не Value, Array, sharedctypes или SharedMemory (с 3.8)
Alex
Уже всё
ты продолжаешь парсить html регулярками?
Alex
тут вывожу после всех процессов. вывод ноль
я вообще решительно не понимаю нахрена извращаться с мультипроцессингом \ локами на файлах если можно взять пару очередей или какой-нибудь scrapy специально для этого предназначенный.
Ruslan
@cutwater Благодарю, очень помогли!)
Alex
так мне нужно вернуть значение из процесса?
мне лень читать это все, я бы посоветовал взять multiprocessing.Pool, возвращать результаты в родительский процесс и обрабатывать уже в родительском процессе.
Ruslan
/ban /report
Oleg
/report
Anonymous
Почему вылазиет эта ошибка? for el in arr_of_links: if el == '.py': arr_of_links.remove(el) elif 'it' in el: arr_of_links.remove(el)
Anonymous
arr_of_links не массив
Массив я создал arr_of_links = []
koder
посылаешь из дочерних единицы, в основном складываешь
Anonymous
koder
а что нужно напомни?
просто хочет посчитать сколько завершилось
Anonymous
multiprocessing.Queue
каждый завершенный процесс вернет значение отдельно?
koder
сколько раз ты q.put(1) вызовешь, столько и q.get сможешь раз сделать в родительском
Anonymous
уже сутки мучаюсь над этим
koder
правда я хз зачем это тебе
Anonymous
правда я хз зачем это тебе
хотел процесс работы в терминале показать))
koder
ты и так знаешь сколько завершилось - ты же их создал и можно просто спросить сколько уже того у объекта-процесса