@ru_python

Страница 7325 из 9768
Yegor
08.12.2018
09:24:07
Пул внутри джанги? Зачем?
не не, не вниматильно читал. Здесть не про джангу

Oleksandr
08.12.2018
09:24:16
Yegor
08.12.2018
09:24:48
Задача такова. Нужно мультипроцессорно писать в файл

то-есть чтоб тридцать тредов строились в очередь и писали в файл

Google
Oleksandr
08.12.2018
09:25:18
Yegor
08.12.2018
09:26:19
лучше бы по делу...

Oleksandr
08.12.2018
09:26:38
то-есть чтоб тридцать тредов строились в очередь и писали в файл
Ну я же тебе написал как. Только реализовать осталось. Ты уже умеешь лочить ресурс (файл).

Yegor
08.12.2018
09:27:16
Denis
08.12.2018
09:27:31
Задача такова. Нужно мультипроцессорно писать в файл
Как насчет писать каждому в свой файл, а потом объединить?

Oleksandr
08.12.2018
09:28:04
И ты сам сказал что под вендой будут траблы
Да нет разницы в твоей задаче. И не писал я такого

Yegor
08.12.2018
09:28:11
Как насчет писать каждому в свой файл, а потом объединить?
На лету генерить имена файлов? Как нагенерить чтоб не повторялись?

хотя, я в курсе как

Yegor
08.12.2018
09:28:37
26000 файлов в одной папке это нормально?

Matvey
08.12.2018
09:28:57
def parse(i=0, meta=[]): num_of_childs = line[i] num_of_meta = line[i + 1] for child_num in range(num_of_childs): i, meta = parse(i + 2) meta += line[i+2:i+2 + num_of_meta] i += num_of_meta return i, meta Почему этот код работает и считает сумму меты у всех детей? По идее, ссылка на мету в цикле должна перезаписываться, но этого не происходит и она передаётся дальше в глубь

Oleksandr
08.12.2018
09:28:59
нифига я не умею. Не могу в инете нормальный пример найти
Первая ссылка http://edmundmartin.com/multi-threaded-crawler-in-python/

Google
Denis
08.12.2018
09:29:22
У тебя 26000 процессов?

Yegor
08.12.2018
09:30:28
У тебя 26000 процессов?
У меня 26000 ссылок куда надо сходить

Denis
08.12.2018
09:30:53
У меня 26000 ссылок куда надо сходить
А зачем для каждой отдельный файл?

Yegor
08.12.2018
09:31:02
да, я уже понял что тупонул

файлы будут по количеству тредов

Первая ссылка http://edmundmartin.com/multi-threaded-crawler-in-python/
ща поковыряю, но чет сложное какое-то оно

Oleksandr
08.12.2018
09:32:11
ща поковыряю, но чет сложное какое-то оно
Не сложноватое. Ты думать не хочешь

Yegor
08.12.2018
09:34:33
дело в том что я вообще классов боюсь

и не всегда понимаю

и записи в файл я чет не вижу в скрипте

Nikolay
08.12.2018
09:39:26
Меня тут ждали?

?

Костя
08.12.2018
09:42:20
сегодня задание попроще чем вчера как по мне... вчера подня сидел разбирался пока понял какой алгоритм надо использовать

Matvey
08.12.2018
09:44:10
Оно же вызывается без аргумента meta, и если не указал, что мету передаю, оно должно создавать новый список, как дефолт аргумент, или это не так работает?

Костя
08.12.2018
09:46:11
блин а я не знал, что листы можно складывать) думал только екстендом можно)

и внешняя потом перезаписывается на результат

Google
Костя
08.12.2018
09:55:52
какой-то странный результат выходит, это точно правильное решение?

Matvey
08.12.2018
09:56:15
На 1, да

Но почему после цикла они соединяются в итоге, а не присваивается результат последнего вызова

Костя
08.12.2018
09:57:05
у меня другой ответ))

может я не то в лайн передаю

Yegor
08.12.2018
09:57:40
Как вот в этом узнать имя процесса??? with Pool(pools_amount) as p: p.map(get_contacts, go_to_links()) тоесть в функции get_contacts я хочу знать имя процесса

Matvey
08.12.2018
09:57:44
Лайн - список интов исходных

Костя
08.12.2018
09:58:50


а должно быть 138, если 1 часть

Matvey
08.12.2018
10:00:56
Нужна сумма последнего

Костя
08.12.2018
10:01:29
тогда, это второе, а там правильный 66)

Спойлер к елке 8 день! вот мой говнокод к этому, но все работает def second(): def get_data(all_numbers): q_child_nodes, q_metadata = all_numbers.pop(0), all_numbers.pop(0) children = defaultdict(int) meta = [] value = 0 for child_node in range(q_child_nodes): all_numbers, child_value = get_data(all_numbers) children[child_node+1] = child_value for times in range(q_metadata): meta.append(all_numbers.pop(0)) for child in meta: if children: value += children[child] else: value += child return all_numbers, value print(get_data(numbers)) лол, каунер убрал, не нужен он тут

Aragaer
08.12.2018
10:04:16
норм задачко сегодня

Matvey
08.12.2018
10:05:31
Сейчас вторую пишу, а мы индекс ребёнка считаем от корня всего дерева или от локального родителя?

По примеру не очень понятно

Matvey
08.12.2018
10:07:41
Окей, спасиб

some_random_anonymous
08.12.2018
10:07:42
Что-то какая-то лёгкая сегодня задача. Вчера я например думал куда дольше. Или может расслабленно себя ощущаю в субботу. ?

Google
some_random_anonymous
08.12.2018
10:12:45
Такая классическая задача на рекурсию. Её можно студентам или школьникам давать, чтобы поняли рекурсию.

Aragaer
08.12.2018
10:21:22


вот так вот если без ensure

Tishka17
08.12.2018
10:23:20
Что-то какая-то лёгкая сегодня задача. Вчера я например думал куда дольше. Или может расслабленно себя ощущаю в субботу. ?
Ну как лёгкая, я 40 минут провозился на обе части, пока нашел где у меня рекурсия криво работает. Оказалось аргументы местами перепутал при вызове

Aragaer
08.12.2018
10:24:40
я больше всего времени потратил на то, как в списке по индексу обращаться, потом взял вектор 8)

SetazeR
08.12.2018
10:26:32
Tishka17
08.12.2018
10:27:32
Обход дерева - классика

Admin
ERROR: S client not available

Tishka17
08.12.2018
10:27:44
А факториал через рекурсию - странно все же

Его даже определение итеративно даётся

SetazeR
08.12.2018
10:28:21
факториал как пример что можно и итеративно, и рекурсивно

Tishka17
08.12.2018
10:29:05
С ним сложно понять "а зачем это"

SetazeR
08.12.2018
10:29:57
ну может быть

если не рассказывать что-то типа

9!=9*8!=9*8*7! и т.д.

Yegor
08.12.2018
10:35:22
Не сложноватое. Ты думать не хочешь
В общем я нашел решение. В нем воркеры выстраиваются для записи в файл. with open(ff, 'a') as file: with Pool(processes=3) as pool: for result in pool.imap_unordered(get_contacts, go_to_links()): file.write(str(result))

такая фигня

Google
Yegor
08.12.2018
10:36:55
я с него не читаю, только пишу в него

и запись в файл десятки раз выше чем поход на сайт

Tishka17
08.12.2018
10:38:25
Эм

Yegor
08.12.2018
10:38:32
скажем так, воркеров у меня будет 30ть штук, Один поход на сайт не меньше секунды. Уверен на сто процентов что запись в файл производится быстрее чем 30 строк в секунду

Tishka17
08.12.2018
10:38:38
Может лучше в разные файлы тогда записать?

А потом объединить

Yegor
08.12.2018
10:38:51
смысл?

Tishka17
08.12.2018
10:38:57
И не париться с синхронизацией

Ну я думал ты их читаешь

А так смысл делать общий ресурс, когда все независимо

Yegor
08.12.2018
10:39:42
я читаю в начале программы другой файл со ссылками на страницы, он к этому не имеет никакого дела

а это получится исходный файл который я потом в итоге переформатирую уже в любой удобоваримый формат

Tishka17
08.12.2018
10:42:13
Ну и пиши отдельные файлы, потом переформатируешь

Чё париться

TpouHuK
08.12.2018
10:42:46
Как в питоне найти максимальную разность между двумя рядомстоящими элементами списка? (Красиво, гарантируется что элементов >=2) Вот мой некросивый вариант: it = iter(arr) next(arr) print(max(map(lambda a, b: abs(a-b), arr, it)))

Yegor
08.12.2018
10:43:20
TpouHuK
08.12.2018
10:45:00
найти разницу между минимумом и максимумом?
между двумя рядомстоящими элементами, максимальную

Tishka17
08.12.2018
10:46:10
Маришка
08.12.2018
10:47:39

Страница 7325 из 9768