Пишу простую, но реальную программу на Python. Автоматизирую свою рутину.
Ғылым және технология
Запишитесь на бесплатный курс Нетологии «Python-разработка для начинающих» - netolo.gy/iwr.
По промокоду CLUBDEDOV действует скидка 45% на платные курсы Нетологии.
Реальный пример из жизни, как я автоматизировал свою рутину при помощи языка программирования Python. Задача - обработать большое количество папок с фотографиями. А именно: выбрать по одной фото из каждой папки и рассортировать их по коллекциям.
Подробно объясняю процесс создания программы.
⭐️ Мой подробный "Роадмап деда-программиста. Python бэкенд." со скидкой 10% : stepik.org/a/133721/pay?promo...
✅ Теперь доступна оплата заграничными картами!!
Чат Дедов-программистов в телеграме: t.me/oldcodersclub
Наш очень крутой GitHub дедов-программистов с кучей полезной информации для начинающих - роадмапы, с чего начать и куда развиваться : github.com/OldCodersClub
00:00 Intro
00:45 Суть задачи
01:48 Очень полезная реклама
04:44 Первая подзадача - взять по одной фото из каждой папки
07:17 Ловим ошибки при помощи try - except
11:06 Вторая подзадача - рассортировать фото по папкам
12:04 Об использовании DEBUG - режима отладки
14:04 Об умении предвидеть возможные ошибки
17:13 Outro
Пікірлер: 478
Помнится появилась у меня на работе одна мерзкая рутинная задача по сведению текста из нескольких txt-файлов в .doc документ. А в doc файле, перед началом куска текста нужно было сделать заголовок с текстом из названия файла. Документов было около 5к, в разных папках. Начальник запряг 3 человека на эту работу, т.к. нужно было сделать срочно до конца рабочего дня. Мы поделили файлы и приступили к работе. По-началу всё шло бодренько, но через полчаса стало понятно, что до конца рабочего дня мы точно не успеем такими темпами. После этого мне в голову пришла идея автоматизировать задачу, но вот беда: на работе нельзя ничего установить на ПК, т.к. действует запрет групповой политики на запуск и исполнение неразрешённого софта, а нормального ПК без ограничений групповой политики не было. Я вышел покурить и в курилке меня осенило "можно же использовать макросы vba из самого MS офиса"! До этого я никогда не работал с vba, но в качестве хобби изучал дома С#. Раскуривая скудные мануалы по vba, чертыхаясь, я принялся писать макрос. Писал его около часа. Всё это время на меня шипели коллеги за то, что я не копирую файлики, а занимаюсь какой-то неведомой фигнёй. И вот макрос был написан. Он заходил в папки, считывал txt файлы и писал их в созданный через этот же макрос doc файл, не забывая формировать заголовки. Затем макрос сохранял doc файл в аккуратную папку "Обработано". Все файлы макрос обработал секунд за 10. В это же время мои коллеги обработали около 1/4 от всего объёма. Оставшиеся 4 часа до конца рабочего дня мы отдыхали.
@oldcoders
Жыл бұрын
Шикарная история! Всегда впечатляет НАСКОЛЬКО компьютеры могут экономить время.
@msvru
Жыл бұрын
По работе нужно было забить большое количество данных в базу 1С через очень неудобный web интерфейс. Поскольку творческие задачи гораздо интереснее монотонных, написал скрипт на autoit (на моём рабочем ПК я админ) и весь процесс я тупил в телефон, поглядывая как трудится мой скрипт тыкая в кнопочки и заполняя поля.
@user-rp7wk6pq5w
Жыл бұрын
Да, воодушевляет изучить программирование. Хотя бы для личного развития. Пример шикарный! 👍👍👍
Хотел вставить 5 копеек по коду, но потом подумал что так будет слишком душно, поэтому напишу свой лайфхак по практике программирования: я ходил по форумам где тусуются начинающие изучать программирование студенты и писал для них бесплатно программы, под их относительно простые учебные задачи. Это помогло мне набить руку с использованием фактически неограниченного генератора вполне осмысленных заданий. А автору спасибо за контент, всегда рад когда кто-то открывает для себя новые интересы, особенно если это программирование )
@oldcoders
2 жыл бұрын
Не! Напишите пожалуйста про код, как оптимальнее было бы. Только не в плане экономии памяти, типа лучше кортеж вместо списка или конкатенация много памяти ест, а именно что нить интересное 😀
@RadicalCrab
2 жыл бұрын
@@oldcoders оптимизировать по памяти или скорости одноразовые утилиты смысла, конечно, мало, мне скорее бросились в глаза фундаментальные вещи - например использование исключений для обработки ошибок. Все таки обычно стараются сделать так, чтобы исключений не возникало, именно на то они и исключения, а используя их таким образом вы как бы перекладываете ответственность с программиста на интерпретатор. Обработчик исключений, в первую очередь, нужен для внештатных ситуаций, а тут ситуация прогнозируемая и вполне штатная. Ну и по мелочи там, например *chdir* не нужен, ведь *listdir* принимает путь для которого надо вернуть листинг или то, что *file = os.path.join(dir, dir + '_1.jpg')* и второй *listdir* не требуется, плюс можно сразу проверить есть ли такой файл и если нет - вывести ошибку, что для такой-то папки не найден требуемый файл. И все равно подушнил, но я не хотел! )
@oldcoders
2 жыл бұрын
Классно, спасибо!! Ничего не душнилово, все так и есть! Реально оптимизация 👍👍 захотелось даже продолжение снять «как оптимизировать программу» 😀
@afkmate
2 жыл бұрын
@@oldcoders Было бы интересно посмотреть)
@TeMyAp
2 жыл бұрын
@@oldcoders сними про это продолжение, зацепило. 20-30 ещё минут
Дружище, тебя так приятно слушать. Не быстро, не медленно, интонация не утомляет. (бывший инженер по качеству, рентгенотехника. Меняю профессию, в поисках и в процессе обучения)
1. Не нужно использовать `dir` как имя переменной, потому что это имя глобальной функции dir(). 2. Для работы с файловой системой лучше использовать pathlib. 3. try...except нормальный путь для Python, но лучше просто проверять на директорию 4. Вместо переменной counter лучше пользоваться enumerate() 5. На Маке для этой задачи лучше было запустить Automator, а не писать скрипт руками
@oldcoders
Жыл бұрын
Спасибо! Про Automator я даже не знал что он существует 😬😀
Спасибо вам большое! Делайте пожалуйста почаще такие видео!
@oldcoders
2 жыл бұрын
Постараюсь! :)
Спасибо за видео!!! Действительно интересно наблюдать за решением реальной задачи.
Вот это вообще красота! Где-то 1/3, может 2/3 из этого ролика информации я не знал (мне просто 14 и python только учу), но мне очень пригодились знания работы с командной строкой Windows, поэтому думаю, что в этом не очень сложно разобраться. С такими роликами становиться понятным, для чего нужны все эти функции и операции. К примеру, если нужно перебрать не 487 папок, а несколько тысяч 😨 Поэтому большое спасибо Вам за ролик. Попробую тоже по Вашему примеру написать что-то похожее)
@oldcoders
Жыл бұрын
Ты молодец 👍👍
@oldcoders
Жыл бұрын
Не соглашусь. Это все не надо учить. Это надо понять. Грубо говоря как механик не должен знать как устроен автомобиль каждого бренда. Встречает неизвестный автомобиль - берет мануал и разбирается. Затем ремонтирует.
@mellis9118
Жыл бұрын
А мне 13, тоже обожаю этот канал)Изучаю Питон около года, и с папками вообще дела не имела=)
@user-mh7yr4mg6u
Жыл бұрын
счастливый человек, что так рано начал осваивать программирование. Очень выигрышный ход, который существенно упростит и улучшит твоё будущее. Был бы кто-то, кто бы мне в 14 посоветовал начать учить программирование, был бы благодарен этому человеку
Спасибо! Посмотрел все ваши видео, тоже теперь учусь программировать. Было приятно, что всё так понятно и разложено по полочкам, вы большой молодец! Жду новых ваших видео, это очень вдохновляет. 😌
@oldcoders
2 жыл бұрын
Отлично, очень рад! Пишите что хотелось бы увидеть, про что снять
@felix30ua
Жыл бұрын
олень, учиться нужно у людей, которые в этом разбираются - Бизли, Лутц, Свейгарт, Хеллман, а не у лоха в кепке!! А то "вырастешь", как этот уипан - нах никому не нужный))) зы читай книги, лентяй)
Мега полезно. Я много нового узнал из практики, а не только из теории, поэтому огромное спасибо за это видео
Очень интересно! Пожалуйста продолжайте выкладывать видео! Всë понятно объясняете. Благодарю Вас!
@oldcoders
Жыл бұрын
Спасибо! Выкладываю :)
Ура! Дед вернулся)))!
@oldcoders
2 жыл бұрын
👴🤘
Спасибо вам большое, что на самом деле показываете проекты и как это делается.
Спасибо за реальный пример - так действительно понятнее зачем это всё!)
Glad to see you again. We need more videos like this one. Thanks for your job !
@oldcoders
2 жыл бұрын
Will do!
просто бомбище! вдохновляешь безумно!
Очень чётко , респект. Продолжайте ваше дело 👍
А вы молодец, правда, очень хорошо, как настоящий учитель показываете по самым маленьким шагам как все делаете =) Я хоть и пишу на Питоне, но просто посмотреть как вы создаете программу было приятно.
Спасибо за полезное, увлекательное, понятное и познавательное видео. И за ссылку на бесплатный ознакомительный курс. 👍
Во втором цикле, когда нашли нужный файл можно было break добавить. Нужен же только один файл, зачем просматривать остальные, если уже нашли нужный? А ещё можно было не все файлы выбирать, а по маске "*_1.jpg".
Рада видеть!! Удачи!
Огромное спасибо, очень круто получилось!!! Я в самом начале изучения и ваше видео очень наглядно показало возможность применения!
Классно! Супер! Ты большой молодец, снимай еще
Только знакомлюсь с темой, Ваши видео супер! Настолько это круто и интересно)
Сплошное удовольствие от познания нового ❤
Спасибо, тезка, интересно рассказываешь)
вы умничка. вдохновляете на большее)
Супер!!! Благодарю. Как раз то что надо 👌
Спасибо за крутое видео! Приятно наблюдать за решением конкретной задачи, а не какой-то абстрактной 🔥👍
@Fant1040
Жыл бұрын
Обучение Python с нуля. Мой опыт - kzread.info/dash/bejne/fo2st9iinZvOnJM.html
Чувак, ты меня вдохновляешь, капец как!!
@oldcoders
2 жыл бұрын
😀 очень рад
Спасибо за видео! По возможности почаще выходи в эфир!
@oldcoders
Жыл бұрын
Вот сегодня новое видео вышло :)
Спасибо за видео! Очень классно и понятно все!
Очень круто видео, показывается логика разработки, спасибо. Это лучшее объяснение
Чувак, ты молодец! Смотрю тебя с самого начала!
@oldcoders
2 жыл бұрын
Спасибо 🙌
Большое спасибо! Нередко нужно работать именно с файлами и папками.
Классно. Без лишней воды. Жирный вам лайк)))
Вот такой контент, само то что надо!
да, прекрасный метод подачи информации. спасибо!!
Потрясающе!!!! СПАСИБО, СПАСИБО ЗА ВИДЕО!!!!
Спасибо большое за урок. Голос очень приятный и все очень доходчиво.
спасибо большое за обучение, очень доступно !
Шикарное видео! Спасибо большое!
Спасибо! Очень крутой контент для начинающих разработчиков. Жду новых видео =)
Спасибо за видео)) Очень круто учить программирование на примерах!!
@oldcoders
Жыл бұрын
Думаю скоро ещё одно видео из этой серии выпущу
продолжай, не останавливайся!
Видос -просто бомба! Спасибо огромное!
Спасибо. Очень понятно, просто.
Вы большой молодец, пожалуйста всегда продолжайте в том же духе, от просмотра получил большое удовлетворение, так что спасибо вам большое и всего самого наилучшего!!!
@oldcoders
Жыл бұрын
Спасибо
Спасибо! Очень полезное видео!
Четко, ясно и понятно. Ставлю лайк! И подписываюсь!
@oldcoders
Жыл бұрын
Спасибо. Через пару дней выйдет еще одно видео из этой серии.
Замечательное объяснение! Было очень интересно. Надеюсь будет ещё такое объяснение и применение в практике языка программирования. Лайк, подписка.
Красавчик!!! Четкий видос!
Очень интересно! Спасибо!
@oldcoders
2 жыл бұрын
Надеюсь пригодится :)
Поставил лайк за шикарный видеоролик. Мне понравилась не только логика мыслительного процесса при решении настоящей задачи, но и подход к ней. А, именно: 1. появление ошибки и её решение 2. тестирование на каждом шагу написания программы с плавным переходом на debugging (отладчик) 3. поиск той или иной функции Осталось только программу описать, чтобы не забыть для чего она написана. Я думаю, что для каждой такой программы следует делать теги для быстрого поиска подобных программ из огромного множества старых. Это как искать фотку из огромного количества. Продолжайте снимать видеоролики в том же духе! Успехов всем нам!
@oldcoders
Жыл бұрын
Спасибо! Да, можно в начале программы написать комментарий для чего она и тд
ну ты просто крут! молодчина! приятно посмотреть...
Очень интересное видео! Спасибо!
Спасибо за видео, хороший контент!
Тоже год назад начал изучать питон, прям очень нравится, а как сел за свою первую программу то не мог оторваться. Прям на рабочем компе написал программу для проверки знаний для коллег. Спасибо большое за видосы. Кстати на iPhone мне учиться очень помогла и помогает программа pythonista даже pip пакеты туда можно ставить, рекомендую.
Отдельное спасибо за блок по использованию Debug. Теперь все будет ещё «профессиональнее» ).
Сколько видосов смотрю)Но после этого реально все понял)Крут)))))
Огонь просто! Закончу учиться на Степике - пойду на Нетологию
Дякую за відео, цікаво дивитись за вирішенням реальної задачі!
Рекомендую почитать доку по модулю pathlib и 428 пеп на него, для более удобного апи работы с фс. Ну и лучше, конечно, написать функцию, которая принимает путь до исходной папки и путь куда складывать готовы файлы, чтобы не менять глобальный стейт через os.chdir. Т.к потом наступишь на грабли при затаскивании такого кода в другой проект, где есть логика, подвязанная на рабочую директорию.
@oldcoders
2 жыл бұрын
Спасибо!
Хороший пример!!! Как раз что оо подобное мне нужно сделать с огромным дампом файлов, попробую пайтон
Братик, огромный респект тебе, начинаю потихоньку вникать в питон, надеюсь скоро брошу работу в такси!
Ваш стиль подачи материала - 🔥 Можно кучу тренеров в онлайн школах программирования заменить вашим объяснением
@oldcoders
Жыл бұрын
☺️☺️☺️ вроде обычно объясняю. Но спасибо!
@user-rp7wk6pq5w
Жыл бұрын
@@oldcoders шикарно обьясняете. 👍
Ещё можно в обработку номера папки перед созданием - добавить обработку пробелов, или заменить их на символ нуля, например.
ты просто гений, лучший туторил
Рад видеть главного деда)))
@oldcoders
2 жыл бұрын
Взаимно 🙌
все быстро и понятно!
Люблю реальне задачи, а оптимизировать рутину ещё больше
требуем следующий части
@oldcoders
Жыл бұрын
Есть видео из этой серии, python + excel
Можно было обойтись без chdir, так как listdir принимает параметр path - та директория содержимое которой будем обходить. Плюс вместо try except, можно использовать os.path.isfile или os.path.isdir
@oldcoders
Жыл бұрын
Спасибо!
Отличное видео! На маке конечно быстрее было бы встроенным поисковиком это сделать, но в качестве тренировки - самое то!
Недавно узнал про enumerate(). С его помощью счетчик создается: for counter, element in enumerate(list): тело цикла. Counter - индекс элемента element в list.
Спасибо за мотивацию)
@oldcoders
Жыл бұрын
Через один ролик будет про ещё одну реальную задачу которую я решал , связано с Экселем
@kst5161
Жыл бұрын
@@oldcoders Будем ждать)
Огромное тебе спасибо.
пришла посмотреть, что за программа для автоматизации рутины. Итог: наконец-то поняла как пользоваться дебагером. Спасибо
Познавательно, спасибо🤪
Очень позновательно
Ох как круто же это, вот так взять и что-то создать, тоже решил пойти на курсы Python в свои 35 годиков, так как учиться чему-то новому в наше время только плюс, сейчас ищу ноут))
Спасибо за видео. Могу посоветовать вместо конкатенации использовать f-strings (f'some string value {some_variable_or_simple_code}'), как по мне, так удобнее. Или (конкретно под задачу с путями к папкам/файлам) os.path.join().
@oldcoders
2 жыл бұрын
Спасибо!! Да!
@iamlexs
Жыл бұрын
для работы с путями файлов надо использовать pathlib, плюшек очень много
Слушай, годнота, пили ещё)
Большое спасибо за Вашу работу. Мотивирует и дает дополнительные знания, расширяет кругозор.
топ контент, очень интересно и доходчиво))
Приветствую! Отличное видео, спасибо. Скажи пожалуйста, что за среда разработки?
@oldcoders
Жыл бұрын
PyCharm
Спасибо! Я как раз дед Нью би, учусь Пайтону и как раз сдал домашку по ос и начал изучать трай эксепт. Так что Ваш ролик зашёл в десятку. С нетерпением жду новых, дедомотивирующих роликов! До пенсии ещё далеко, спасибо Пенсионной реформе. Может ещё успею овладеть новой специальностью. Может хоть репетитором у школоты смогу устроиться
@oldcoders
2 жыл бұрын
😀👌🤘
крутой формат!
Спасибо. у меня бывают подобные задачи, попытался сам написать, но на бегу не получилось, отложил. я руками поиском искал нужные файлы и разносил их. Ура, долой рутину.
Очень крутые видео у тебя! Сам учу Python и django
@oldcoders
2 жыл бұрын
Спасибо! Ты молодец!!
спасибо вам за видео
Круууто!😁👍💪🙏
Интересно 👍
Ну ты дед! Ну красава! Вдохновил меня наконец-то под свои нужды попитонить) На счёт деда это прикол, я сам тебя догоню через пару лет) изложил как надо, коротко и ясно, и весело 👍
@oldcoders
2 жыл бұрын
Класс :)) 👍
Никак не связан с питоном и из любопытства посмотрел видео. Уж больно стало интересно как выглядит автоматизация на питоне. Видео понравилось, лайк, подписка. Если кого-нибудь захочу освоить питон, начну с вашего канала. А пока, буду смотреть все что Ютуб будет от вас предлагать. Приятно и понятно говорите.
@oldcoders
Жыл бұрын
Спасибо! 🙌
Спасибо огромное
очень полезно!
Круто!!!
Классное видео! Как называется среда разработки?
@oldcoders
Жыл бұрын
PyCharm
Я хотя и "дедушка" 50 лет 😀в программировании, сейчас учусь в нетологии на DS , только, что прошли материал. Так та я АСУТП шник. Мои шаги не уверенныев питоне, но приятно осознавать то, что я понимаю код, о чем речь. А так как я "ленивый" чел в хорошем смысле слова, то освою тоже питон👍
Слушайте, спасибо Вам за Ваши видео
@oldcoders
2 жыл бұрын
Рад если пригождаются!