Добрый день! Отличное видео. Напомнило "цепочку отвественности". Пробовал на одном из курсов реалзиовывать на классах. Спасибо, за доходчивое разъяснения!
Лайк не глядя - это, конечно, да. Но вопрос (или может даже просьба) интересует: планируете ли серию видео по принципам выстраивания архитектуры приложений?
Вопрос: вызовы os.walk выполняются асинхронно? Имеется в виду, что если выполнение внешней команды занимает значительное время будут ли все файлы обрабатываться параллельно? И второй вопрос: как ограничить количество параллельно обрабатываемых файлов? В bash скриптах я использую find | xargs а в питоне только queue + threading приходит в голову.
Спасибо, очень крутая вещь, постараюсь реализовывать в будующем. В следующем видео можно хоть немного о ветвлениях в таких пайпах? Пока лучше чем свитч внутри и передачу нескольких корутин ничего не придумал
@@zaemiel решил для понимания написать примерно тоже что у вас, но с размерами файлов и выводом txt/csv/py. Пока остановился на словаре вида { 'extension': ext_coroutine(prev_cor) , ... } а в фильтре вызываю по расширению следующую корутину
Олег, спасибо за видео! Может подскажите в чём дело? Сделал два скрипта по Вашим урокам, стандартный из предыдущего и корутиновый из этого. Натравил их на папку с видео, а они работают одинаково: у обоих построчный вывод, как должно быть только у пайплайна, и время работы 3.2-3.7 секунд. У меня Windows10, а скрипт я запускаю из под Git Bash для совместимости команд строкой "python
@@zaemiel а причем здесь это? Ты не понял. Ты запускаешь coro_vid не со второго видео, не с первого видео, а какой-то некий, который подготовил заранее до записи ролика. На папку обрати внимание. Ты запустил не то, что написал в видео, а что-то другое, а говоришь "проверим этот скрипт на большой папке"
Этого не может быть. Это где-то было, я где-то его написал. Я не мог взять скрипт из неоткуда. Просто потому, что я никогда этого не делал. Я скорее лишний раз расскажу как работает цикл FOR, чем возьму заранее подготовленный скрипт, написанный за кадром. Это в принципе невозможно.
вы вообще видео с начала смотрите или нет? Я же сразу сказал, что в начале продемонстрирую результат его работы. И запустил этот скрипт. А потом на протяжении всего этого видео я переписываю скрипт из предыдущего видео с использование корутиновых пайплайнов. Это же первые 2 минуты видео!
@@zaemiel Да причем тут первые две минуты. Я же дал таймкод, вы смотрели вообще? У вас две папки первый раз вы запускаете из "~/Desktop/scraping_course" на 26:00 ; Второй раз вы запускаете из "/media/oleg/ceb5f..../oleg/projects" на 27:36 . Скрипт один и тот же запускается? Просто на видео это не понятно. Я же написал таймкод, почему вы про начало говорите всё время? То про разные видео, то про начало видео.
Теперь не знаю. У этого скрипта 2 узких места. Одно решается многопоточностью, а второе никак не решается. В итоге на больших папках (вроде той, что в этом видео) выигрыш, который дает многопоточность практически полностью нивелируется вторым узким местом. Ацтой!
Прикол в том, что popen это процесс, который выполняется параллельно, комуникейт, эту параллельность фактически убивает. Лайк поставил бы если бы комуникейты асинхронно обработал бы.
Ну тогда может нужно сменить название у видео, зачем не оптимально автоматизировать задачи? ... шутка, а если по существу, мне кажется использование технологии там это действительно необходимо намного быстрее бы раскрывало ее суть.
Добрый день! Отличное видео. Напомнило "цепочку отвественности". Пробовал на одном из курсов реалзиовывать на классах. Спасибо, за доходчивое разъяснения!
Спасибо
Однозначно лайк!
Вижу новое видио сразу ставлю лайк не глядя, спасибо!
видео
Круто, очень доходчиво объясняется Спасибо за видео
Лайк не глядя - это, конечно, да. Но вопрос (или может даже просьба) интересует: планируете ли серию видео по принципам выстраивания архитектуры приложений?
Олег, а заключительным этапом будет использование Async / Await в данном скрипте?
Очень приятное видео. Огромное спасибо!
Вообще прикольно, отличный паттерн, спасибо
Олег, спасибо за Ваш труд. Будет ли продолжение?
Как всегда на высоте, репост ВК обязательно! ))
Спасибо большое
Вопрос: вызовы os.walk выполняются асинхронно? Имеется в виду, что если выполнение внешней команды занимает значительное время будут ли все файлы обрабатываться параллельно?
И второй вопрос: как ограничить количество параллельно обрабатываемых файлов? В bash скриптах я использую find | xargs а в питоне только queue + threading приходит в голову.
00:00 Генераторы, корутины
07:07 Что такое пайплайн
09:08 Разработка примера
20:04 Разработка запуска пайплайна в main
27:19 Запуск примера
Спасибо, очень крутая вещь, постараюсь реализовывать в будующем. В следующем видео можно хоть немного о ветвлениях в таких пайпах? Пока лучше чем свитч внутри и передачу нескольких корутин ничего не придумал
а так и есть - свитч, передача в следующий фильтр списка корутин и раздача по другим корутинам через цикл
@@zaemiel решил для понимания написать примерно тоже что у вас, но с размерами файлов и выводом txt/csv/py. Пока остановился на словаре вида { 'extension': ext_coroutine(prev_cor) , ... } а в фильтре вызываю по расширению следующую корутину
большое спасибо, очень интересно
os.path.basename прекрасно работает в "самой лучшей операционной системе" (Windows).
Это здорово
Отлично, спасибо, все очень понятно)
Куда удобнее, на мой взгляд, строить конвейер на генераторах. Корутины здесь выглядят довольно странно.
Олег, спасибо за видео! Может подскажите в чём дело?
Сделал два скрипта по Вашим урокам, стандартный из предыдущего и корутиновый из этого. Натравил их на папку с видео, а они работают одинаково: у обоих построчный вывод, как должно быть только у пайплайна, и время работы 3.2-3.7 секунд. У меня Windows10, а скрипт я запускаю из под Git Bash для совместимости команд строкой "python
Третья часть утеряна или забыта?
Спасибо, интересно.
Неужели coro_vid.py это coronovirus vid (covid)?
Спасибо.
Олег, у меня цыкл проходит успешно но под конец на выходе TypeError: 'NoneType' object is not an iterator.
вероятно вы поставили декоратор у функции find_files
🗽
27:36 ты ведь запускаешь не только что написанный скрипт, а подготовленный до записи видео в другой папке...
вы обратили внимание, что это второе видео?
@@zaemiel а причем здесь это?
Ты не понял. Ты запускаешь coro_vid не со второго видео, не с первого видео, а какой-то некий, который подготовил заранее до записи ролика. На папку обрати внимание. Ты запустил не то, что написал в видео, а что-то другое, а говоришь "проверим этот скрипт на большой папке"
Этого не может быть.
Это где-то было, я где-то его написал.
Я не мог взять скрипт из неоткуда. Просто потому, что я никогда этого не делал.
Я скорее лишний раз расскажу как работает цикл FOR, чем возьму заранее подготовленный скрипт, написанный за кадром.
Это в принципе невозможно.
вы вообще видео с начала смотрите или нет?
Я же сразу сказал, что в начале продемонстрирую результат его работы.
И запустил этот скрипт.
А потом на протяжении всего этого видео я переписываю скрипт из предыдущего видео с использование корутиновых пайплайнов.
Это же первые 2 минуты видео!
@@zaemiel Да причем тут первые две минуты. Я же дал таймкод, вы смотрели вообще?
У вас две папки первый раз вы запускаете из "~/Desktop/scraping_course" на 26:00 ;
Второй раз вы запускаете из "/media/oleg/ceb5f..../oleg/projects" на 27:36 . Скрипт один и тот же запускается? Просто на видео это не понятно. Я же написал таймкод, почему вы про начало говорите всё время? То про разные видео, то про начало видео.
Что это за самая лучшая операционная система?)
@@veirant5004 ну обратные слеши используются в "окнах" разве не так?)
linux mint
продолжение будет ?
Теперь не знаю. У этого скрипта 2 узких места. Одно решается многопоточностью, а второе никак не решается. В итоге на больших папках (вроде той, что в этом видео) выигрыш, который дает многопоточность практически полностью нивелируется вторым узким местом. Ацтой!
@@zaemiel узкое место это 1 поисковик ? а второе много поисковиков и их взаимодействие ?
поиск файлов на диске. Его никак нельзя ускорить.
@@zaemiel Демонстрация ограничений тоже очень полезна. Если есть возможность, то запишите видео с "неудачей" по ускорении и оптимазции
Прикол в том, что popen это процесс, который выполняется параллельно, комуникейт, эту параллельность фактически убивает. Лайк поставил бы если бы комуникейты асинхронно обработал бы.
Прикол совсем не в этом. Прикол в том, что в этом видео нет ни единого намека на оптимизацию скрипта. Она даже не планировалась.
Ну тогда может нужно сменить название у видео, зачем не оптимально автоматизировать задачи? ... шутка, а если по существу, мне кажется использование технологии там это действительно необходимо намного быстрее бы раскрывало ее суть.
Эта задача подходит под pipeline. Прямо напрашивается поэтому я сделал. Если вы хотите более удачный пример на ваш взгляд - запишите ваше видео
Лайк неглядя