Помнится появилась у меня на работе одна мерзкая рутинная задача по сведению текста из нескольких txt-файлов в .doc документ. А в doc файле, перед началом куска текста нужно было сделать заголовок с текстом из названия файла. Документов было около 5к, в разных папках. Начальник запряг 3 человека на эту работу, т.к. нужно было сделать срочно до конца рабочего дня. Мы поделили файлы и приступили к работе. По-началу всё шло бодренько, но через полчаса стало понятно, что до конца рабочего дня мы точно не успеем такими темпами. После этого мне в голову пришла идея автоматизировать задачу, но вот беда: на работе нельзя ничего установить на ПК, т.к. действует запрет групповой политики на запуск и исполнение неразрешённого софта, а нормального ПК без ограничений групповой политики не было. Я вышел покурить и в курилке меня осенило "можно же использовать макросы vba из самого MS офиса"! До этого я никогда не работал с vba, но в качестве хобби изучал дома С#. Раскуривая скудные мануалы по vba, чертыхаясь, я принялся писать макрос. Писал его около часа. Всё это время на меня шипели коллеги за то, что я не копирую файлики, а занимаюсь какой-то неведомой фигнёй. И вот макрос был написан. Он заходил в папки, считывал txt файлы и писал их в созданный через этот же макрос doc файл, не забывая формировать заголовки. Затем макрос сохранял doc файл в аккуратную папку "Обработано". Все файлы макрос обработал секунд за 10. В это же время мои коллеги обработали около 1/4 от всего объёма. Оставшиеся 4 часа до конца рабочего дня мы отдыхали.
По работе нужно было забить большое количество данных в базу 1С через очень неудобный web интерфейс. Поскольку творческие задачи гораздо интереснее монотонных, написал скрипт на autoit (на моём рабочем ПК я админ) и весь процесс я тупил в телефон, поглядывая как трудится мой скрипт тыкая в кнопочки и заполняя поля.
Дружище, тебя так приятно слушать. Не быстро, не медленно, интонация не утомляет. (бывший инженер по качеству, рентгенотехника. Меняю профессию, в поисках и в процессе обучения)
1. Не нужно использовать `dir` как имя переменной, потому что это имя глобальной функции dir(). 2. Для работы с файловой системой лучше использовать pathlib. 3. try...except нормальный путь для Python, но лучше просто проверять на директорию 4. Вместо переменной counter лучше пользоваться enumerate() 5. На Маке для этой задачи лучше было запустить Automator, а не писать скрипт руками
А вы молодец, правда, очень хорошо, как настоящий учитель показываете по самым маленьким шагам как все делаете =) Я хоть и пишу на Питоне, но просто посмотреть как вы создаете программу было приятно.
Спасибо! Посмотрел все ваши видео, тоже теперь учусь программировать. Было приятно, что всё так понятно и разложено по полочкам, вы большой молодец! Жду новых ваших видео, это очень вдохновляет. 😌
олень, учиться нужно у людей, которые в этом разбираются - Бизли, Лутц, Свейгарт, Хеллман, а не у лоха в кепке!! А то "вырастешь", как этот уипан - нах никому не нужный))) зы читай книги, лентяй)
Рекомендую почитать доку по модулю pathlib и 428 пеп на него, для более удобного апи работы с фс. Ну и лучше, конечно, написать функцию, которая принимает путь до исходной папки и путь куда складывать готовы файлы, чтобы не менять глобальный стейт через os.chdir. Т.к потом наступишь на грабли при затаскивании такого кода в другой проект, где есть логика, подвязанная на рабочую директорию.
Автор ролика ты просто мой кумир. В 44 заморочился с обучением, а теперь делаешь людям добро. Удачи тебе и совет: Создавай свой курс!!! Желающих будет куча)))
Ну ты дед! Ну красава! Вдохновил меня наконец-то под свои нужды попитонить) На счёт деда это прикол, я сам тебя догоню через пару лет) изложил как надо, коротко и ясно, и весело 👍
Спасибо! Я как раз дед Нью би, учусь Пайтону и как раз сдал домашку по ос и начал изучать трай эксепт. Так что Ваш ролик зашёл в десятку. С нетерпением жду новых, дедомотивирующих роликов! До пенсии ещё далеко, спасибо Пенсионной реформе. Может ещё успею овладеть новой специальностью. Может хоть репетитором у школоты смогу устроиться
Тоже год назад начал изучать питон, прям очень нравится, а как сел за свою первую программу то не мог оторваться. Прям на рабочем компе написал программу для проверки знаний для коллег. Спасибо большое за видосы. Кстати на iPhone мне учиться очень помогла и помогает программа pythonista даже pip пакеты туда можно ставить, рекомендую.
Никак не связан с питоном и из любопытства посмотрел видео. Уж больно стало интересно как выглядит автоматизация на питоне. Видео понравилось, лайк, подписка. Если кого-нибудь захочу освоить питон, начну с вашего канала. А пока, буду смотреть все что Ютуб будет от вас предлагать. Приятно и понятно говорите.
Можно было обойтись без chdir, так как listdir принимает параметр path - та директория содержимое которой будем обходить. Плюс вместо try except, можно использовать os.path.isfile или os.path.isdir
Спасибо за видео. Могу посоветовать вместо конкатенации использовать f-strings (f'some string value {some_variable_or_simple_code}'), как по мне, так удобнее. Или (конкретно под задачу с путями к папкам/файлам) os.path.join().
Я такую задачу решал без программирования, средствами Total Commander. Сначала с помощью Ctrl+B включал отображение всех файлов текущего каталога и подкаталогов в одну кучу. А потом просто с помощью регулярного вьіражения отфильтровьівал нужное и перемещал все в отдельную папку.
Спасибо за видео! Было интересно посмотреть над реализацией программы для реальной задачи. P.S. Последний print в программе нужно было сделать после операции увеличения счётчика counter, тогда бы вывелись все 487 объектов в консоль, а не 486. Ну это так мелочи)) Ещё раз спасибо за видео!
Нет, там нумерация с 0 шла, поэтому 486 это нормально. Другое дело что надо было счётчик ставить когда скопировал файл, тогда бы конкретно были посчитаны количество файлов. А я поставил его сразу в начале цикла - просто считал количество элементов в списке , достаточно бесполезный счётчик получился 😀
Вы большой молодец, пожалуйста всегда продолжайте в том же духе, от просмотра получил большое удовлетворение, так что спасибо вам большое и всего самого наилучшего!!!
Обожаю такие ролики с программированием "файл менеджмента" 📁 Сам начал знакомство с Пайтоном именно на этой почве, потому что представлял, как результат можно применить на практике ⚙ Для себя подчерпнул: ✅ для копирования использовать "shutil" ✅ можно использовать "break", чтобы прогнать цикл 1 раз в тестовом режиме ✅ вместо "print" использовать debug-режим ✅ как вариант вместо "os.path.isdir" использовать связку "try... except..." Было бы интересно увидеть ролик в таком же "рутинном" формате о работе с Excel-файлами (например, как пробежаться по куче таблиц и точечно собрать из них информацию) 📗
Спасибо. Да, сам думаю что хорошо бы про Эксель снять, но нет блин реальной задачи на горизонте :) те программы что я использую - мной уже давно написаны :)
@@oldcoders Ну да, тут весь смысл именно в ПРАКТИЧНОСТИ задачи... 😏 А что используете для работы с Excel через Пайтон? Я пока только про "OpenPyXL" слышал 🤔
Openpyxl, xlrd (они одинаковые, просто для разных файлов - xlsx и xls. И pandas часто пользуюсь, удобно загрузить в датафрейм всю таблицу и делать что хош.
@@oldcoders Спасибо. Пока общаюсь с Excel только на VBA, и меня всё устраивает) Не представляю, чего нового сможет предложить Пайтон в этом плане, но интересно)
В плане обработки данных ничего нового не предложит, но зато можно выйти за границы дозволенного в VBA :) И передавать данные куда угодно и веб приложение сделать для этих данных и так далее
Огонь! Удивительно, но ставлю лайк на рекламу ))) Являюсь одним из аспирантов на курсе «Python-разработка для начинающих» от Нетологии. И подтверждаю, в чате и на курсе очень много людей кому под 40, как и мне, и за 40. Стараемся помочь каждому познакомиться с их первым языком программирования Python. Приходите, мы вас ждём =) Пы.Сы. Сама программа тоже огонь! То что надо для новичков! - реальное применение Python. Просто, кратко, лаконично, и экономит уйму времени )))
Недавно узнал про enumerate(). С его помощью счетчик создается: for counter, element in enumerate(list): тело цикла. Counter - индекс элемента element в list.
Я хотя и "дедушка" 50 лет 😀в программировании, сейчас учусь в нетологии на DS , только, что прошли материал. Так та я АСУТП шник. Мои шаги не уверенныев питоне, но приятно осознавать то, что я понимаю код, о чем речь. А так как я "ленивый" чел в хорошем смысле слова, то освою тоже питон👍
У меня года с 2006 остро стоит задача сортировки файлов в downloads и я постоянно дописываю нехитрый скриптик двигающий файлики по папочкам из года в год. Так мой скрипт переехал из обычного цикла со списками из listdir на os.walk(), которая немного сложнее но делает всё тоже самое только сразу создаёт и списки поддиректорий и файлов. Работать с ней немного сложнее потому что функция создаёт генераторы вместо списков, но кода получается меньше и работает она вроде как быстрее ручного обхода директорий через listdir. А после выхода 3.6 я начал постепенно переезжать на pathlib. Конкатенация путей файлов всегда меня настораживала и где только возможно я пользовал os.path.join() чтобы всё было правильно и я нигде не забыл слэш или ещё что-нибудь. Так вот, pathlib делает работу с путями культурнее и приятнее, когда разберёшься и привыкнешь, к тому же скрипт можно будет таскать с винды на линукс и обратно не переписывая, pathlib сам выберет слэши или бэкслеши для путей. Из нерешенного у меня остались штуки типа дубликатов файлов и директорий, и странные вылеты когда файлов очень много, а также что приходится придумывать сложный регекс для сортировки по директориям которые соответствуют категориям или тегам, например Wallpapers или Art. Один из последних релизов Питончика решил проблему с длиной путей... Вообщем, мой простой скриптик со временем превратился немного в комбайн, но в процессе я научился многим новым штукам, базовому рефакторингу, лаконичному коду и best practices. Короче: не используйте конкатенацию, используйте встроенные модули или проверенные библиотеки под конкретные задачи, делайте генераторы вместо списков для больших объёмов данных, не переусложняйте код и постоянно делайте проверки перед критическими операциями типа rmdir() и подобными.
Если так тебе делать приходится часто, то написать полноценную программу конечно стоит. Но я в основном сталкиваюсь с тем, что нужно выполнить подобную рутинную вещь 1 раз, в таких случаях я использую банальный автокликер. Для этой цели скрипт был бы написан не больше чем за 5 минут, выполнился бы раз в 50 дольше, но как по мне так логичнее
Большое спасибо за это видео) Я учу программирование и уже перешел от синтаксиса к изучению библиотек. Сейчас постигаю дзен GUI :) , а конкретно tkinter. Отдельное спасибо за то, что показали, что такое дебаг. Пишу в PyCharm, но не знал про этот режим, хотя часто не мог понять, что за красная точка появляется возле строки :) У Вас очень интересный контент, а видео, на мой взгляд, очень грамотно смонтированы. Респект за контент и такой формат Еще раз спасибо)
Я в своём втором видео рассказывал. Освоил tkinter , но понял что мне не нравится дизайн и понял что десктопные приложения мало кто делает. Вся красота дизайна и все мультипользовательские приложения делают в вебе. Так что я научился делать веб-приложения и веб-интерфейсы. Я подробно обо всем рассказывал в своей самой первой серии видео.
Возможно об этом уже писали, но можно было обойтись без конкатенации строк. В случаях когда нужно подставить значение переменной в строку, можно применять %s, эта конструкция позволяет динамически добавить в строку значения переменных, объявленных в скобках после знака %. Пример: shutil.copy2(file, '../../NEW FOTO/%s' % (collection))
Спасибо! Ну, честно говоря, уровень этой программы сильно не дотягивает до джуниора. Это самое ядро Питона. А чтобы устроиться на джуниора надо знать пару больших фреймворков и писать программы посложнее.
Замечательная задача для новичков, но её можно решить не программирую. Total commander (файловый менеджер) позволяет решить эту задачу в несколько действий. 1. Заходим в папку 2. Команды-》показать все файлы без подкаталогов (ctrl+b) 3. Сортировка 4. Копирование
На счет использования опытными программистами дебага, вместо принтов, вы не совсем правы! Тут лично субъективный выбор подхода и инструмента для проверки логики работы программы. Бывают такие ситуации, когда дебаг просто нельзя применить, а бывает и наоборот. Да и опытный прогер лучше напишет тесты к своей программе на логику работы. А в целом Ваше творчество выше всех похвал! Сам являюсь опытным разработчиком со стажем более 3-х лет. Правда я по Андроиду специализируюсь. В фоне смотрю и слушаю ваши видео, качество подачи материала на высоте!
Помнится появилась у меня на работе одна мерзкая рутинная задача по сведению текста из нескольких txt-файлов в .doc документ. А в doc файле, перед началом куска текста нужно было сделать заголовок с текстом из названия файла.
Документов было около 5к, в разных папках. Начальник запряг 3 человека на эту работу, т.к. нужно было сделать срочно до конца рабочего дня.
Мы поделили файлы и приступили к работе. По-началу всё шло бодренько, но через полчаса стало понятно, что до конца рабочего дня мы точно не успеем такими темпами.
После этого мне в голову пришла идея автоматизировать задачу, но вот беда: на работе нельзя ничего установить на ПК, т.к. действует запрет групповой политики на запуск и исполнение неразрешённого софта, а нормального ПК без ограничений групповой политики не было.
Я вышел покурить и в курилке меня осенило "можно же использовать макросы vba из самого MS офиса"!
До этого я никогда не работал с vba, но в качестве хобби изучал дома С#. Раскуривая скудные мануалы по vba, чертыхаясь, я принялся писать макрос. Писал его около часа. Всё это время на меня шипели коллеги за то, что я не копирую файлики, а занимаюсь какой-то неведомой фигнёй.
И вот макрос был написан. Он заходил в папки, считывал txt файлы и писал их в созданный через этот же макрос doc файл, не забывая формировать заголовки. Затем макрос сохранял doc файл в аккуратную папку "Обработано".
Все файлы макрос обработал секунд за 10. В это же время мои коллеги обработали около 1/4 от всего объёма.
Оставшиеся 4 часа до конца рабочего дня мы отдыхали.
Шикарная история! Всегда впечатляет НАСКОЛЬКО компьютеры могут экономить время.
По работе нужно было забить большое количество данных в базу 1С через очень неудобный web интерфейс. Поскольку творческие задачи гораздо интереснее монотонных, написал скрипт на autoit (на моём рабочем ПК я админ) и весь процесс я тупил в телефон, поглядывая как трудится мой скрипт тыкая в кнопочки и заполняя поля.
Да, воодушевляет изучить программирование. Хотя бы для личного развития. Пример шикарный! 👍👍👍
Дружище, тебя так приятно слушать. Не быстро, не медленно, интонация не утомляет. (бывший инженер по качеству, рентгенотехника. Меняю профессию, в поисках и в процессе обучения)
1. Не нужно использовать `dir` как имя переменной, потому что это имя глобальной функции dir().
2. Для работы с файловой системой лучше использовать pathlib.
3. try...except нормальный путь для Python, но лучше просто проверять на директорию
4. Вместо переменной counter лучше пользоваться enumerate()
5. На Маке для этой задачи лучше было запустить Automator, а не писать скрипт руками
Спасибо! Про Automator я даже не знал что он существует 😬😀
Спасибо вам большое! Делайте пожалуйста почаще такие видео!
Постараюсь! :)
Ура! Дед вернулся)))!
👴🤘
А вы молодец, правда, очень хорошо, как настоящий учитель показываете по самым маленьким шагам как все делаете =) Я хоть и пишу на Питоне, но просто посмотреть как вы создаете программу было приятно.
Спасибо за реальный пример - так действительно понятнее зачем это всё!)
Спасибо! Посмотрел все ваши видео, тоже теперь учусь программировать. Было приятно, что всё так понятно и разложено по полочкам, вы большой молодец! Жду новых ваших видео, это очень вдохновляет. 😌
Отлично, очень рад! Пишите что хотелось бы увидеть, про что снять
олень, учиться нужно у людей, которые в этом разбираются - Бизли, Лутц, Свейгарт, Хеллман, а не у лоха в кепке!! А то "вырастешь", как этот уипан - нах никому не нужный)))
зы читай книги, лентяй)
Чувак, ты молодец! Смотрю тебя с самого начала!
Спасибо 🙌
Ваш стиль подачи материала - 🔥 Можно кучу тренеров в онлайн школах программирования заменить вашим объяснением
☺️☺️☺️ вроде обычно объясняю. Но спасибо!
@@oldcoders шикарно обьясняете. 👍
Очень круто видео, показывается логика разработки, спасибо. Это лучшее объяснение
Сплошное удовольствие от познания нового ❤
Очень интересно! Пожалуйста продолжайте выкладывать видео! Всë понятно объясняете. Благодарю Вас!
Спасибо! Выкладываю :)
Отдельное спасибо за блок по использованию Debug. Теперь все будет ещё «профессиональнее» ).
продолжай, не останавливайся!
Спасибо вам большое, что на самом деле показываете проекты и как это делается.
Спасибо, тезка, интересно рассказываешь)
Рад видеть главного деда)))
Взаимно 🙌
Вот такой контент, само то что надо!
Рекомендую почитать доку по модулю pathlib и 428 пеп на него, для более удобного апи работы с фс. Ну и лучше, конечно, написать функцию, которая принимает путь до исходной папки и путь куда складывать готовы файлы, чтобы не менять глобальный стейт через os.chdir. Т.к потом наступишь на грабли при затаскивании такого кода в другой проект, где есть логика, подвязанная на рабочую директорию.
Спасибо!
Спасибо за видео!!! Действительно интересно наблюдать за решением реальной задачи.
ну ты просто крут! молодчина! приятно посмотреть...
Братик, огромный респект тебе, начинаю потихоньку вникать в питон, надеюсь скоро брошу работу в такси!
Автор ролика ты просто мой кумир. В 44 заморочился с обучением, а теперь делаешь людям добро. Удачи тебе и совет: Создавай свой курс!!! Желающих будет куча)))
Спасибо!! А какой курс по вашему должен быть? Основы Питона - таких курсов много, бесплатных и хороших.
Очень чётко , респект. Продолжайте ваше дело 👍
Ну ты дед! Ну красава! Вдохновил меня наконец-то под свои нужды попитонить)
На счёт деда это прикол, я сам тебя догоню через пару лет) изложил как надо, коротко и ясно, и весело 👍
Класс :)) 👍
Спасибо! Я как раз дед Нью би, учусь Пайтону и как раз сдал домашку по ос и начал изучать трай эксепт. Так что Ваш ролик зашёл в десятку. С нетерпением жду новых, дедомотивирующих роликов! До пенсии ещё далеко, спасибо Пенсионной реформе. Может ещё успею овладеть новой специальностью. Может хоть репетитором у школоты смогу устроиться
😀👌🤘
Большое спасибо! Нередко нужно работать именно с файлами и папками.
да, прекрасный метод подачи информации. спасибо!!
Тоже год назад начал изучать питон, прям очень нравится, а как сел за свою первую программу то не мог оторваться. Прям на рабочем компе написал программу для проверки знаний для коллег. Спасибо большое за видосы. Кстати на iPhone мне учиться очень помогла и помогает программа pythonista даже pip пакеты туда можно ставить, рекомендую.
Glad to see you again. We need more videos like this one. Thanks for your job !
Will do!
Никак не связан с питоном и из любопытства посмотрел видео. Уж больно стало интересно как выглядит автоматизация на питоне.
Видео понравилось, лайк, подписка. Если кого-нибудь захочу освоить питон, начну с вашего канала. А пока, буду смотреть все что Ютуб будет от вас предлагать.
Приятно и понятно говорите.
Спасибо! 🙌
Классно. Без лишней воды. Жирный вам лайк)))
Четко, ясно и понятно. Ставлю лайк! И подписываюсь!
Спасибо. Через пару дней выйдет еще одно видео из этой серии.
Можно было обойтись без chdir, так как listdir принимает параметр path - та директория содержимое которой будем обходить. Плюс вместо try except, можно использовать os.path.isfile или os.path.isdir
Спасибо!
Только знакомлюсь с темой, Ваши видео супер! Настолько это круто и интересно)
Рада видеть!! Удачи!
Спасибо за видео. Могу посоветовать вместо конкатенации использовать f-strings (f'some string value {some_variable_or_simple_code}'), как по мне, так удобнее. Или (конкретно под задачу с путями к папкам/файлам) os.path.join().
Спасибо!! Да!
для работы с путями файлов надо использовать pathlib, плюшек очень много
ты просто гений, лучший туторил
Спасибо за видео! По возможности почаще выходи в эфир!
Вот сегодня новое видео вышло :)
Огромное спасибо, очень круто получилось!!!
Я в самом начале изучения и ваше видео очень наглядно показало возможность применения!
Классно! Супер! Ты большой молодец, снимай еще
Я такую задачу решал без программирования, средствами Total Commander. Сначала с помощью Ctrl+B включал отображение всех файлов текущего каталога и подкаталогов в одну кучу. А потом просто с помощью регулярного вьіражения отфильтровьівал нужное и перемещал все в отдельную папку.
Потрясающе!!!! СПАСИБО, СПАСИБО ЗА ВИДЕО!!!!
Спасибо большое за урок. Голос очень приятный и все очень доходчиво.
требуем следующий части
Есть видео из этой серии, python + excel
вы умничка. вдохновляете на большее)
Сколько видосов смотрю)Но после этого реально все понял)Крут)))))
Большое спасибо за Вашу работу. Мотивирует и дает дополнительные знания, расширяет кругозор.
Спасибо за видео! Было интересно посмотреть над реализацией программы для реальной задачи.
P.S. Последний print в программе нужно было сделать после операции увеличения счётчика counter, тогда бы вывелись все 487 объектов в консоль, а не 486. Ну это так мелочи)) Ещё раз спасибо за видео!
Нет, там нумерация с 0 шла, поэтому 486 это нормально. Другое дело что надо было счётчик ставить когда скопировал файл, тогда бы конкретно были посчитаны количество файлов.
А я поставил его сразу в начале цикла - просто считал количество элементов в списке , достаточно бесполезный счётчик получился 😀
Хороший пример!!! Как раз что оо подобное мне нужно сделать с огромным дампом файлов, попробую пайтон
спасибо большое за обучение, очень доступно !
Ещё можно в обработку номера папки перед созданием - добавить обработку пробелов, или заменить их на символ нуля, например.
Видос -просто бомба! Спасибо огромное!
Можно ещё сделать, чтобы программа показывала текущую папку, выбор папки, и подтверждение операции.
Это уже усложнение программы, не особо нужно, а времени потрачу больше
Замечательное объяснение! Было очень интересно. Надеюсь будет ещё такое объяснение и применение в практике языка программирования. Лайк, подписка.
Вы большой молодец, пожалуйста всегда продолжайте в том же духе, от просмотра получил большое удовлетворение, так что спасибо вам большое и всего самого наилучшего!!!
Спасибо
Огромное тебе спасибо.
Спасибо за видео! Очень классно и понятно все!
Очень интересно! Спасибо!
Надеюсь пригодится :)
Люблю реальне задачи, а оптимизировать рутину ещё больше
Спасибо за мотивацию)
Через один ролик будет про ещё одну реальную задачу которую я решал , связано с Экселем
@@oldcoders Будем ждать)
Обожаю такие ролики с программированием "файл менеджмента" 📁 Сам начал знакомство с Пайтоном именно на этой почве, потому что представлял, как результат можно применить на практике ⚙
Для себя подчерпнул:
✅ для копирования использовать "shutil"
✅ можно использовать "break", чтобы прогнать цикл 1 раз в тестовом режиме
✅ вместо "print" использовать debug-режим
✅ как вариант вместо "os.path.isdir" использовать связку "try... except..."
Было бы интересно увидеть ролик в таком же "рутинном" формате о работе с Excel-файлами (например, как пробежаться по куче таблиц и точечно собрать из них информацию) 📗
Спасибо. Да, сам думаю что хорошо бы про Эксель снять, но нет блин реальной задачи на горизонте :) те программы что я использую - мной уже давно написаны :)
@@oldcoders Ну да, тут весь смысл именно в ПРАКТИЧНОСТИ задачи... 😏
А что используете для работы с Excel через Пайтон? Я пока только про "OpenPyXL" слышал 🤔
Openpyxl, xlrd (они одинаковые, просто для разных файлов - xlsx и xls. И pandas часто пользуюсь, удобно загрузить в датафрейм всю таблицу и делать что хош.
@@oldcoders Спасибо. Пока общаюсь с Excel только на VBA, и меня всё устраивает) Не представляю, чего нового сможет предложить Пайтон в этом плане, но интересно)
В плане обработки данных ничего нового не предложит, но зато можно выйти за границы дозволенного в VBA :) И передавать данные куда угодно и веб приложение сделать для этих данных и так далее
Спасибо! Очень полезное видео!
Шикарное видео! Спасибо большое!
Огонь! Удивительно, но ставлю лайк на рекламу ))) Являюсь одним из аспирантов на курсе «Python-разработка для начинающих» от Нетологии. И подтверждаю, в чате и на курсе очень много людей кому под 40, как и мне, и за 40. Стараемся помочь каждому познакомиться с их первым языком программирования Python. Приходите, мы вас ждём =)
Пы.Сы. Сама программа тоже огонь! То что надо для новичков! - реальное применение Python. Просто, кратко, лаконично, и экономит уйму времени )))
Недавно узнал про enumerate(). С его помощью счетчик создается: for counter, element in enumerate(list): тело цикла. Counter - индекс элемента element в list.
Очень интересное видео! Спасибо!
Очень позновательно
Отличное видео! На маке конечно быстрее было бы встроенным поисковиком это сделать, но в качестве тренировки - самое то!
В идеале конечно ещё обернуть в функции и добавить if __name__ == '__main__'. Так хотя бы новички будут сразу правильный код писать.
Давай ещё задачи на Codewars!
Будет
Я хотя и "дедушка" 50 лет 😀в программировании, сейчас учусь в нетологии на DS , только, что прошли материал. Так та я АСУТП шник. Мои шаги не уверенныев питоне, но приятно осознавать то, что я понимаю код, о чем речь. А так как я "ленивый" чел в хорошем смысле слова, то освою тоже питон👍
Круууто!😁👍💪🙏
Орнул. Для защиты нежной психики программистов, ошибки называются исключениями)))
Ошибки и исключения - это не одно и то же.
Спасибо за видео, хороший контент!
У меня года с 2006 остро стоит задача сортировки файлов в downloads и я постоянно дописываю нехитрый скриптик двигающий файлики по папочкам из года в год. Так мой скрипт переехал из обычного цикла со списками из listdir на os.walk(), которая немного сложнее но делает всё тоже самое только сразу создаёт и списки поддиректорий и файлов. Работать с ней немного сложнее потому что функция создаёт генераторы вместо списков, но кода получается меньше и работает она вроде как быстрее ручного обхода директорий через listdir.
А после выхода 3.6 я начал постепенно переезжать на pathlib. Конкатенация путей файлов всегда меня настораживала и где только возможно я пользовал os.path.join() чтобы всё было правильно и я нигде не забыл слэш или ещё что-нибудь. Так вот, pathlib делает работу с путями культурнее и приятнее, когда разберёшься и привыкнешь, к тому же скрипт можно будет таскать с винды на линукс и обратно не переписывая, pathlib сам выберет слэши или бэкслеши для путей.
Из нерешенного у меня остались штуки типа дубликатов файлов и директорий, и странные вылеты когда файлов очень много, а также что приходится придумывать сложный регекс для сортировки по директориям которые соответствуют категориям или тегам, например Wallpapers или Art. Один из последних релизов Питончика решил проблему с длиной путей...
Вообщем, мой простой скриптик со временем превратился немного в комбайн, но в процессе я научился многим новым штукам, базовому рефакторингу, лаконичному коду и best practices.
Короче: не используйте конкатенацию, используйте встроенные модули или проверенные библиотеки под конкретные задачи, делайте генераторы вместо списков для больших объёмов данных, не переусложняйте код и постоянно делайте проверки перед критическими операциями типа rmdir() и подобными.
За пробелы в именах папок/файлов по рукам нужно бить)
А вы ретроград 😀
Если так тебе делать приходится часто, то написать полноценную программу конечно стоит. Но я в основном сталкиваюсь с тем, что нужно выполнить подобную рутинную вещь 1 раз, в таких случаях я использую банальный автокликер. Для этой цели скрипт был бы написан не больше чем за 5 минут, выполнился бы раз в 50 дольше, но как по мне так логичнее
Интересно 👍
Мне 38 лет возвращаюсь в IT после 8 летнего перерыва
Большое спасибо за это видео) Я учу программирование и уже перешел от синтаксиса к изучению библиотек. Сейчас постигаю дзен GUI :) , а конкретно tkinter.
Отдельное спасибо за то, что показали, что такое дебаг. Пишу в PyCharm, но не знал про этот режим, хотя часто не мог понять, что за красная точка появляется возле строки :)
У Вас очень интересный контент, а видео, на мой взгляд, очень грамотно смонтированы. Респект за контент и такой формат
Еще раз спасибо)
Спасибо за добрые слова! 🙌
@@oldcoders , что Вы используете для создания графического интерфейса? Если нет секрет)
Я в своём втором видео рассказывал. Освоил tkinter , но понял что мне не нравится дизайн и понял что десктопные приложения мало кто делает. Вся красота дизайна и все мультипользовательские приложения делают в вебе. Так что я научился делать веб-приложения и веб-интерфейсы. Я подробно обо всем рассказывал в своей самой первой серии видео.
В модуле os есть walk, как раз для таких случаев. Заходит во все папки и отбирает файлы.
спасибо вам за видео
Спасибо за видео! Мне, как новичку, было невероятно полезно.
Уже подумал, что деды пошли на пенсию. Спасибо за видео. Мирного неба!
Выкладывайте пожалуйста исходный код, думаю многим было бы приятно его почитать самостоятельно после просмотра видео.
О, я думал программка маленькая, поэтому код итак весь на одном экране. Чего там смотреть :)
Возможно об этом уже писали, но можно было обойтись без конкатенации строк. В случаях когда нужно подставить значение переменной в строку, можно применять %s, эта конструкция позволяет динамически добавить в строку значения переменных, объявленных в скобках после знака %.
Пример:
shutil.copy2(file, '../../NEW FOTO/%s' % (collection))
Да, или наверняка f-строкой можно было обойтись . Но я стараюсь максимально проще и понятней
Крутое видео, то что нужно тем кто хочет стать djunior)))
Спасибо! Ну, честно говоря, уровень этой программы сильно не дотягивает до джуниора. Это самое ядро Питона. А чтобы устроиться на джуниора надо знать пару больших фреймворков и писать программы посложнее.
Слушайте, спасибо Вам за Ваши видео
Рад если пригождаются!
Замечательная задача для новичков, но её можно решить не программирую. Total commander (файловый менеджер) позволяет решить эту задачу в несколько действий.
1. Заходим в папку
2. Команды-》показать все файлы без подкаталогов (ctrl+b)
3. Сортировка
4. Копирование
Да, скорее всего есть разные варианты. Но с ними программистом не станешь! 😀
@@oldcoders полностью согласен. Но для общего развития стоит знать несколько вариантов (хотя-бы о том, что они есть)
Круто!!!
У меня и компа то никогда не было.Для начала надо приобрести.
На счет использования опытными программистами дебага, вместо принтов, вы не совсем правы! Тут лично субъективный выбор подхода и инструмента для проверки логики работы программы. Бывают такие ситуации, когда дебаг просто нельзя применить, а бывает и наоборот.
Да и опытный прогер лучше напишет тесты к своей программе на логику работы.
А в целом Ваше творчество выше всех похвал!
Сам являюсь опытным разработчиком со стажем более 3-х лет. Правда я по Андроиду специализируюсь.
В фоне смотрю и слушаю ваши видео, качество подачи материала на высоте!
Классно!!!!
Try-except считается дорогой конструкцией с точки зрения производительности. Правильнее все-таки сделать проверку, что это не директория.
Да, согласен
Слушай, годнота, пили ещё)
в try...except блоке правильнее будет писать не pass, а continue.
Познавательно, спасибо🤪
Очень крутые видео у тебя! Сам учу Python и django
Спасибо! Ты молодец!!