Size: a a a

2020 June 12

p

pragus in SPb Python
Alexander
И что, прямо в проде используют?
Вот этого я не знаю
источник

А

Андрей in SPb Python
Питона начали хоронить) Джаву вон с 2010 хоронят, но че то не выходит
источник

PB

Pete Bystrov in SPb Python
Андрей
Питона начали хоронить) Джаву вон с 2010 хоронят, но че то не выходит
Перенаселение потому что. Питон-то не резиновый!
источник

DS

David Shiko in SPb Python
Всем привет. Что вы думаете об использовании глобального курсора базы данных для всего скрипта, это хорошая практика? Ключевой момент в том, что его нельзя закрыть, т.к. он 1 на весь скрипт, с другой стороны, не нужно каждый раз его пересоздавать.
источник

S

Stan in SPb Python
David Shiko
Всем привет. Что вы думаете об использовании глобального курсора базы данных для всего скрипта, это хорошая практика? Ключевой момент в том, что его нельзя закрыть, т.к. он 1 на весь скрипт, с другой стороны, не нужно каждый раз его пересоздавать.
глобальные переменные зло почти всегда. совершенно точно можно сказать, что глобальные изменяемые переменные - абсолютное зло (а курсор вполне себе изменяем)
источник

DS

David Shiko in SPb Python
Stan
глобальные переменные зло почти всегда. совершенно точно можно сказать, что глобальные изменяемые переменные - абсолютное зло (а курсор вполне себе изменяем)
Благодарю
источник

LB

Linus Buhler in SPb Python
Привет всем
Я сейчас разбираюсь с асинхронкой
Задача передо мной стоит следующая:
На сервере есть папки с названиями "1", " 2", "3"...
Каждая папка под свой поток
Файлы перебираются в цикле и нужно чтобы каждый поток отправлял файл в свою папку, дожидался их обработки и скачивался
Ниже примерно то что вышло у меня. И вроде было бы все хорошо, но программа работает последовательно. То есть до тех пор пока файл не скачается, я не могу перейти к следующей итерации цикла, а я хотел бы запустить несколько итераций одновременно. Что я делаю не так? Спасибо большое за любую помощь
with ThreadPoolExecutor(max_workers=10) as executor:
           future_list = []
           for result in result_list:
               ...
               future = executor.submit(ftp.main, folder, filename, num)
               future_list.append(future)

               ftp.main(folder, filename, num)
          else:
               
               for f in as_completed(future_list):
                   print(f.result())
источник

A

Alexander in SPb Python
Linus Buhler
Привет всем
Я сейчас разбираюсь с асинхронкой
Задача передо мной стоит следующая:
На сервере есть папки с названиями "1", " 2", "3"...
Каждая папка под свой поток
Файлы перебираются в цикле и нужно чтобы каждый поток отправлял файл в свою папку, дожидался их обработки и скачивался
Ниже примерно то что вышло у меня. И вроде было бы все хорошо, но программа работает последовательно. То есть до тех пор пока файл не скачается, я не могу перейти к следующей итерации цикла, а я хотел бы запустить несколько итераций одновременно. Что я делаю не так? Спасибо большое за любую помощь
with ThreadPoolExecutor(max_workers=10) as executor:
           future_list = []
           for result in result_list:
               ...
               future = executor.submit(ftp.main, folder, filename, num)
               future_list.append(future)

               ftp.main(folder, filename, num)
          else:
               
               for f in as_completed(future_list):
                   print(f.result())
Вроде же есть библиотека aioftp. Возьмите её и используйте вместе с asyncio
источник

LB

Linus Buhler in SPb Python
Сейчас гляну
Не натыкался на нее, спасибо
источник

LB

Linus Buhler in SPb Python
Alexander
Вроде же есть библиотека aioftp. Возьмите её и используйте вместе с asyncio
Я вроде не уточняла, поэтому спрошу, она способна на параллелизм?
источник

A

Alexander in SPb Python
Linus Buhler
Я вроде не уточняла, поэтому спрошу, она способна на параллелизм?
Многозадачность
источник

MK

Maxim Koltsov in SPb Python
Linus Buhler
Привет всем
Я сейчас разбираюсь с асинхронкой
Задача передо мной стоит следующая:
На сервере есть папки с названиями "1", " 2", "3"...
Каждая папка под свой поток
Файлы перебираются в цикле и нужно чтобы каждый поток отправлял файл в свою папку, дожидался их обработки и скачивался
Ниже примерно то что вышло у меня. И вроде было бы все хорошо, но программа работает последовательно. То есть до тех пор пока файл не скачается, я не могу перейти к следующей итерации цикла, а я хотел бы запустить несколько итераций одновременно. Что я делаю не так? Спасибо большое за любую помощь
with ThreadPoolExecutor(max_workers=10) as executor:
           future_list = []
           for result in result_list:
               ...
               future = executor.submit(ftp.main, folder, filename, num)
               future_list.append(future)

               ftp.main(folder, filename, num)
          else:
               
               for f in as_completed(future_list):
                   print(f.result())
зачем второй раз ftp.main в цикле вызывается?
и у executor, если мне не изменяет память, есть метод imap или как-то так, чтобы цикл руками не писать
источник

LB

Linus Buhler in SPb Python
Map подходит для функций где в аргументе нужно указать только итератор, его аналог - submit для моего случая
источник

LB

Linus Buhler in SPb Python
Maxim Koltsov
зачем второй раз ftp.main в цикле вызывается?
и у executor, если мне не изменяет память, есть метод imap или как-то так, чтобы цикл руками не писать
По поводу первого вопроса не могу ответить, делаю все чуть ли не на ощупь
источник

LB

Linus Buhler in SPb Python
Методом проб и ошибок
источник

MK

Maxim Koltsov in SPb Python
у вот кажется что ты в цикле сначала пихаешь в executor, а потом ещё и руками запускаешь
источник

MK

Maxim Koltsov in SPb Python
поэтому понятно он будет последовательно в этом самом цикле выполнять
источник

MK

Maxim Koltsov in SPb Python
надо напихать в экзекутор, а потом отдельно подождать все future
источник

MK

Maxim Koltsov in SPb Python
там прямо в доке есть пример с загрузкой файлов
источник

MK

Maxim Koltsov in SPb Python
не фтп, но не важно
источник