Пишу простую, но реальную программу на Python. Автоматизирую свою рутину.

  Рет қаралды 121,612

Клуб дедов-программистов

Клуб дедов-программистов

Күн бұрын

Пікірлер: 480
@robot_pyotr
@robot_pyotr 2 жыл бұрын
Помнится появилась у меня на работе одна мерзкая рутинная задача по сведению текста из нескольких txt-файлов в .doc документ. А в doc файле, перед началом куска текста нужно было сделать заголовок с текстом из названия файла. Документов было около 5к, в разных папках. Начальник запряг 3 человека на эту работу, т.к. нужно было сделать срочно до конца рабочего дня. Мы поделили файлы и приступили к работе. По-началу всё шло бодренько, но через полчаса стало понятно, что до конца рабочего дня мы точно не успеем такими темпами. После этого мне в голову пришла идея автоматизировать задачу, но вот беда: на работе нельзя ничего установить на ПК, т.к. действует запрет групповой политики на запуск и исполнение неразрешённого софта, а нормального ПК без ограничений групповой политики не было. Я вышел покурить и в курилке меня осенило "можно же использовать макросы vba из самого MS офиса"! До этого я никогда не работал с vba, но в качестве хобби изучал дома С#. Раскуривая скудные мануалы по vba, чертыхаясь, я принялся писать макрос. Писал его около часа. Всё это время на меня шипели коллеги за то, что я не копирую файлики, а занимаюсь какой-то неведомой фигнёй. И вот макрос был написан. Он заходил в папки, считывал txt файлы и писал их в созданный через этот же макрос doc файл, не забывая формировать заголовки. Затем макрос сохранял doc файл в аккуратную папку "Обработано". Все файлы макрос обработал секунд за 10. В это же время мои коллеги обработали около 1/4 от всего объёма. Оставшиеся 4 часа до конца рабочего дня мы отдыхали.
@oldcoders
@oldcoders 2 жыл бұрын
Шикарная история! Всегда впечатляет НАСКОЛЬКО компьютеры могут экономить время.
@msvru
@msvru Жыл бұрын
По работе нужно было забить большое количество данных в базу 1С через очень неудобный web интерфейс. Поскольку творческие задачи гораздо интереснее монотонных, написал скрипт на autoit (на моём рабочем ПК я админ) и весь процесс я тупил в телефон, поглядывая как трудится мой скрипт тыкая в кнопочки и заполняя поля.
@ВладимирОсадчий-р5о
@ВладимирОсадчий-р5о Жыл бұрын
Да, воодушевляет изучить программирование. Хотя бы для личного развития. Пример шикарный! 👍👍👍
@RadicalCrab
@RadicalCrab 2 жыл бұрын
Хотел вставить 5 копеек по коду, но потом подумал что так будет слишком душно, поэтому напишу свой лайфхак по практике программирования: я ходил по форумам где тусуются начинающие изучать программирование студенты и писал для них бесплатно программы, под их относительно простые учебные задачи. Это помогло мне набить руку с использованием фактически неограниченного генератора вполне осмысленных заданий. А автору спасибо за контент, всегда рад когда кто-то открывает для себя новые интересы, особенно если это программирование )
@oldcoders
@oldcoders 2 жыл бұрын
Не! Напишите пожалуйста про код, как оптимальнее было бы. Только не в плане экономии памяти, типа лучше кортеж вместо списка или конкатенация много памяти ест, а именно что нить интересное 😀
@RadicalCrab
@RadicalCrab 2 жыл бұрын
@@oldcoders оптимизировать по памяти или скорости одноразовые утилиты смысла, конечно, мало, мне скорее бросились в глаза фундаментальные вещи - например использование исключений для обработки ошибок. Все таки обычно стараются сделать так, чтобы исключений не возникало, именно на то они и исключения, а используя их таким образом вы как бы перекладываете ответственность с программиста на интерпретатор. Обработчик исключений, в первую очередь, нужен для внештатных ситуаций, а тут ситуация прогнозируемая и вполне штатная. Ну и по мелочи там, например *chdir* не нужен, ведь *listdir* принимает путь для которого надо вернуть листинг или то, что *file = os.path.join(dir, dir + '_1.jpg')* и второй *listdir* не требуется, плюс можно сразу проверить есть ли такой файл и если нет - вывести ошибку, что для такой-то папки не найден требуемый файл. И все равно подушнил, но я не хотел! )
@oldcoders
@oldcoders 2 жыл бұрын
Классно, спасибо!! Ничего не душнилово, все так и есть! Реально оптимизация 👍👍 захотелось даже продолжение снять «как оптимизировать программу» 😀
@afkmate
@afkmate 2 жыл бұрын
@@oldcoders Было бы интересно посмотреть)
@TeMyAp
@TeMyAp 2 жыл бұрын
@@oldcoders сними про это продолжение, зацепило. 20-30 ещё минут
@Jack08F
@Jack08F 2 жыл бұрын
Дружище, тебя так приятно слушать. Не быстро, не медленно, интонация не утомляет. (бывший инженер по качеству, рентгенотехника. Меняю профессию, в поисках и в процессе обучения)
@trankov
@trankov 2 жыл бұрын
1. Не нужно использовать `dir` как имя переменной, потому что это имя глобальной функции dir(). 2. Для работы с файловой системой лучше использовать pathlib. 3. try...except нормальный путь для Python, но лучше просто проверять на директорию 4. Вместо переменной counter лучше пользоваться enumerate() 5. На Маке для этой задачи лучше было запустить Automator, а не писать скрипт руками
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо! Про Automator я даже не знал что он существует 😬😀
@СтепСтеп-п1л
@СтепСтеп-п1л 2 жыл бұрын
Спасибо вам большое! Делайте пожалуйста почаще такие видео!
@oldcoders
@oldcoders 2 жыл бұрын
Постараюсь! :)
@progway8574
@progway8574 2 жыл бұрын
Вот это вообще красота! Где-то 1/3, может 2/3 из этого ролика информации я не знал (мне просто 14 и python только учу), но мне очень пригодились знания работы с командной строкой Windows, поэтому думаю, что в этом не очень сложно разобраться. С такими роликами становиться понятным, для чего нужны все эти функции и операции. К примеру, если нужно перебрать не 487 папок, а несколько тысяч 😨 Поэтому большое спасибо Вам за ролик. Попробую тоже по Вашему примеру написать что-то похожее)
@oldcoders
@oldcoders 2 жыл бұрын
Ты молодец 👍👍
@oldcoders
@oldcoders 2 жыл бұрын
Не соглашусь. Это все не надо учить. Это надо понять. Грубо говоря как механик не должен знать как устроен автомобиль каждого бренда. Встречает неизвестный автомобиль - берет мануал и разбирается. Затем ремонтирует.
@info_code
@info_code Жыл бұрын
А мне 13, тоже обожаю этот канал)Изучаю Питон около года, и с папками вообще дела не имела=)
@user-mh7yr4mg6u
@user-mh7yr4mg6u Жыл бұрын
счастливый человек, что так рано начал осваивать программирование. Очень выигрышный ход, который существенно упростит и улучшит твоё будущее. Был бы кто-то, кто бы мне в 14 посоветовал начать учить программирование, был бы благодарен этому человеку
@MrAlexVelik
@MrAlexVelik 2 жыл бұрын
Спасибо! Посмотрел все ваши видео, тоже теперь учусь программировать. Было приятно, что всё так понятно и разложено по полочкам, вы большой молодец! Жду новых ваших видео, это очень вдохновляет. 😌
@oldcoders
@oldcoders 2 жыл бұрын
Отлично, очень рад! Пишите что хотелось бы увидеть, про что снять
@felix30ua
@felix30ua 2 жыл бұрын
олень, учиться нужно у людей, которые в этом разбираются - Бизли, Лутц, Свейгарт, Хеллман, а не у лоха в кепке!! А то "вырастешь", как этот уипан - нах никому не нужный))) зы читай книги, лентяй)
@_garik__
@_garik__ 2 жыл бұрын
Ура! Дед вернулся)))!
@oldcoders
@oldcoders 2 жыл бұрын
👴🤘
@random.user2022
@random.user2022 2 жыл бұрын
Спасибо за крутое видео! Приятно наблюдать за решением конкретной задачи, а не какой-то абстрактной 🔥👍
@Fant1040
@Fant1040 2 жыл бұрын
Обучение Python с нуля. Мой опыт - kzbin.info/www/bejne/gorbhqmfop2bopI
@averse27
@averse27 Жыл бұрын
Мега полезно. Я много нового узнал из практики, а не только из теории, поэтому огромное спасибо за это видео
@denyes342
@denyes342 2 жыл бұрын
Спасибо за реальный пример - так действительно понятнее зачем это всё!)
@PTolkachev
@PTolkachev 2 жыл бұрын
Во втором цикле, когда нашли нужный файл можно было break добавить. Нужен же только один файл, зачем просматривать остальные, если уже нашли нужный? А ещё можно было не все файлы выбирать, а по маске "*_1.jpg".
@8888UNIVERSE8888
@8888UNIVERSE8888 Жыл бұрын
А вы молодец, правда, очень хорошо, как настоящий учитель показываете по самым маленьким шагам как все делаете =) Я хоть и пишу на Питоне, но просто посмотреть как вы создаете программу было приятно.
@ВладимирОсадчий-р5о
@ВладимирОсадчий-р5о Жыл бұрын
Спасибо за полезное, увлекательное, понятное и познавательное видео. И за ссылку на бесплатный ознакомительный курс. 👍
@Fedor_life
@Fedor_life 2 жыл бұрын
Чувак, ты меня вдохновляешь, капец как!!
@oldcoders
@oldcoders 2 жыл бұрын
😀 очень рад
@Роман-я1ш9ш
@Роман-я1ш9ш 2 жыл бұрын
Чувак, ты молодец! Смотрю тебя с самого начала!
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо 🙌
@sashokkuzmenko7814
@sashokkuzmenko7814 2 жыл бұрын
Дякую за відео, цікаво дивитись за вирішенням реальної задачі!
@АлсуХасанова-р4у
@АлсуХасанова-р4у Жыл бұрын
Сплошное удовольствие от познания нового ❤
@kekkekov5756
@kekkekov5756 2 жыл бұрын
Рекомендую почитать доку по модулю pathlib и 428 пеп на него, для более удобного апи работы с фс. Ну и лучше, конечно, написать функцию, которая принимает путь до исходной папки и путь куда складывать готовы файлы, чтобы не менять глобальный стейт через os.chdir. Т.к потом наступишь на грабли при затаскивании такого кода в другой проект, где есть логика, подвязанная на рабочую директорию.
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо!
@Steelglowhawk
@Steelglowhawk 2 жыл бұрын
Отдельное спасибо за блок по использованию Debug. Теперь все будет ещё «профессиональнее» ).
@FxLikePro
@FxLikePro 2 жыл бұрын
Поставил лайк за шикарный видеоролик. Мне понравилась не только логика мыслительного процесса при решении настоящей задачи, но и подход к ней. А, именно: 1. появление ошибки и её решение 2. тестирование на каждом шагу написания программы с плавным переходом на debugging (отладчик) 3. поиск той или иной функции Осталось только программу описать, чтобы не забыть для чего она написана. Я думаю, что для каждой такой программы следует делать теги для быстрого поиска подобных программ из огромного множества старых. Это как искать фотку из огромного количества. Продолжайте снимать видеоролики в том же духе! Успехов всем нам!
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо! Да, можно в начале программы написать комментарий для чего она и тд
@mustafinabulhairc-0kn286
@mustafinabulhairc-0kn286 2 жыл бұрын
Спасибо вам большое, что на самом деле показываете проекты и как это делается.
@olorin11
@olorin11 2 жыл бұрын
Очень круто видео, показывается логика разработки, спасибо. Это лучшее объяснение
@PaulCherepnin
@PaulCherepnin 2 жыл бұрын
Ваш стиль подачи материала - 🔥 Можно кучу тренеров в онлайн школах программирования заменить вашим объяснением
@oldcoders
@oldcoders 2 жыл бұрын
☺️☺️☺️ вроде обычно объясняю. Но спасибо!
@ВладимирОсадчий-р5о
@ВладимирОсадчий-р5о Жыл бұрын
@@oldcoders шикарно обьясняете. 👍
@septem3712
@septem3712 2 жыл бұрын
Очень интересно! Пожалуйста продолжайте выкладывать видео! Всë понятно объясняете. Благодарю Вас!
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо! Выкладываю :)
@vladp1793
@vladp1793 2 жыл бұрын
Можно было обойтись без chdir, так как listdir принимает параметр path - та директория содержимое которой будем обходить. Плюс вместо try except, можно использовать os.path.isfile или os.path.isdir
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо!
@user-Alex248
@user-Alex248 2 жыл бұрын
Вот такой контент, само то что надо!
@АлександрА-я5э3ю
@АлександрА-я5э3ю 2 жыл бұрын
Спасибо за видео!!! Действительно интересно наблюдать за решением реальной задачи.
@alexanderchebotariov7230
@alexanderchebotariov7230 2 жыл бұрын
Спасибо за видео. Могу посоветовать вместо конкатенации использовать f-strings (f'some string value {some_variable_or_simple_code}'), как по мне, так удобнее. Или (конкретно под задачу с путями к папкам/файлам) os.path.join().
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо!! Да!
@iamlexs
@iamlexs 2 жыл бұрын
для работы с путями файлов надо использовать pathlib, плюшек очень много
@AlexeyRiched
@AlexeyRiched 2 жыл бұрын
просто бомбище! вдохновляешь безумно!
@АлексейЦиплин
@АлексейЦиплин 2 жыл бұрын
Рад видеть главного деда)))
@oldcoders
@oldcoders 2 жыл бұрын
Взаимно 🙌
@He1LBoy34
@He1LBoy34 2 жыл бұрын
Спасибо! Очень крутой контент для начинающих разработчиков. Жду новых видео =)
@natisgecas5729
@natisgecas5729 2 жыл бұрын
Glad to see you again. We need more videos like this one. Thanks for your job !
@oldcoders
@oldcoders 2 жыл бұрын
Will do!
@paleface_brother
@paleface_brother 2 жыл бұрын
Большое спасибо! Нередко нужно работать именно с файлами и папками.
@Dark161161
@Dark161161 2 жыл бұрын
Очень чётко , респект. Продолжайте ваше дело 👍
@berrickd8653
@berrickd8653 2 жыл бұрын
Спасибо! Я как раз дед Нью би, учусь Пайтону и как раз сдал домашку по ос и начал изучать трай эксепт. Так что Ваш ролик зашёл в десятку. С нетерпением жду новых, дедомотивирующих роликов! До пенсии ещё далеко, спасибо Пенсионной реформе. Может ещё успею овладеть новой специальностью. Может хоть репетитором у школоты смогу устроиться
@oldcoders
@oldcoders 2 жыл бұрын
😀👌🤘
@cyclestart_youtube_sosi_drova
@cyclestart_youtube_sosi_drova 2 жыл бұрын
Ну ты дед! Ну красава! Вдохновил меня наконец-то под свои нужды попитонить) На счёт деда это прикол, я сам тебя догоню через пару лет) изложил как надо, коротко и ясно, и весело 👍
@oldcoders
@oldcoders 2 жыл бұрын
Класс :)) 👍
@Troubleshooter539
@Troubleshooter539 Жыл бұрын
Автор ролика ты просто мой кумир. В 44 заморочился с обучением, а теперь делаешь людям добро. Удачи тебе и совет: Создавай свой курс!!! Желающих будет куча)))
@oldcoders
@oldcoders Жыл бұрын
Спасибо!! А какой курс по вашему должен быть? Основы Питона - таких курсов много, бесплатных и хороших.
@ОльгаВ-ю9о
@ОльгаВ-ю9о 2 жыл бұрын
Рада видеть!! Удачи!
@yuryradchenko6058
@yuryradchenko6058 2 жыл бұрын
Я такую задачу решал без программирования, средствами Total Commander. Сначала с помощью Ctrl+B включал отображение всех файлов текущего каталога и подкаталогов в одну кучу. А потом просто с помощью регулярного вьіражения отфильтровьівал нужное и перемещал все в отдельную папку.
@russarRus
@russarRus Жыл бұрын
Спасибо, тезка, интересно рассказываешь)
@michaelmushers6368
@michaelmushers6368 2 жыл бұрын
Тоже год назад начал изучать питон, прям очень нравится, а как сел за свою первую программу то не мог оторваться. Прям на рабочем компе написал программу для проверки знаний для коллег. Спасибо большое за видосы. Кстати на iPhone мне учиться очень помогла и помогает программа pythonista даже pip пакеты туда можно ставить, рекомендую.
@nik01aich
@nik01aich Жыл бұрын
продолжай, не останавливайся!
@Ievgenii66
@Ievgenii66 2 жыл бұрын
Спасибо за видео! По возможности почаще выходи в эфир!
@oldcoders
@oldcoders 2 жыл бұрын
Вот сегодня новое видео вышло :)
@markertlogic
@markertlogic 2 жыл бұрын
Только знакомлюсь с темой, Ваши видео супер! Настолько это круто и интересно)
@pavelmelnik9952
@pavelmelnik9952 2 жыл бұрын
Никак не связан с питоном и из любопытства посмотрел видео. Уж больно стало интересно как выглядит автоматизация на питоне. Видео понравилось, лайк, подписка. Если кого-нибудь захочу освоить питон, начну с вашего канала. А пока, буду смотреть все что Ютуб будет от вас предлагать. Приятно и понятно говорите.
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо! 🙌
@KOLCHASIK
@KOLCHASIK Жыл бұрын
да, прекрасный метод подачи информации. спасибо!!
@igorratnik2357
@igorratnik2357 2 жыл бұрын
Классно. Без лишней воды. Жирный вам лайк)))
@ЕлкаФ
@ЕлкаФ 2 жыл бұрын
пришла посмотреть, что за программа для автоматизации рутины. Итог: наконец-то поняла как пользоваться дебагером. Спасибо
@АндрейНаговин
@АндрейНаговин Жыл бұрын
Братик, огромный респект тебе, начинаю потихоньку вникать в питон, надеюсь скоро брошу работу в такси!
@IvanPeshkoff
@IvanPeshkoff 2 жыл бұрын
Большое спасибо за Вашу работу. Мотивирует и дает дополнительные знания, расширяет кругозор.
@DaddyDenTV
@DaddyDenTV Жыл бұрын
Спасибо большое за урок. Голос очень приятный и все очень доходчиво.
@padreromario
@padreromario 2 жыл бұрын
ну ты просто крут! молодчина! приятно посмотреть...
@mdbm500
@mdbm500 2 жыл бұрын
Спасибо. у меня бывают подобные задачи, попытался сам написать, но на бегу не получилось, отложил. я руками поиском искал нужные файлы и разносил их. Ура, долой рутину.
@magamedgeydarov1675
@magamedgeydarov1675 2 жыл бұрын
Огромное спасибо, очень круто получилось!!! Я в самом начале изучения и ваше видео очень наглядно показало возможность применения!
@МихаилСемерухин
@МихаилСемерухин Жыл бұрын
Спасибо за видео)) Очень круто учить программирование на примерах!!
@oldcoders
@oldcoders Жыл бұрын
Думаю скоро ещё одно видео из этой серии выпущу
@terehan88
@terehan88 2 жыл бұрын
Спасибо за видео! Было интересно посмотреть над реализацией программы для реальной задачи. P.S. Последний print в программе нужно было сделать после операции увеличения счётчика counter, тогда бы вывелись все 487 объектов в консоль, а не 486. Ну это так мелочи)) Ещё раз спасибо за видео!
@oldcoders
@oldcoders 2 жыл бұрын
Нет, там нумерация с 0 шла, поэтому 486 это нормально. Другое дело что надо было счётчик ставить когда скопировал файл, тогда бы конкретно были посчитаны количество файлов. А я поставил его сразу в начале цикла - просто считал количество элементов в списке , достаточно бесполезный счётчик получился 😀
@victormakovchik249
@victormakovchik249 Жыл бұрын
Ещё можно в обработку номера папки перед созданием - добавить обработку пробелов, или заменить их на символ нуля, например.
@dmytrolinnik6938
@dmytrolinnik6938 2 жыл бұрын
Замечательное объяснение! Было очень интересно. Надеюсь будет ещё такое объяснение и применение в практике языка программирования. Лайк, подписка.
@_hugoru_
@_hugoru_ 2 жыл бұрын
Классно! Супер! Ты большой молодец, снимай еще
@ordinar007
@ordinar007 2 жыл бұрын
вы умничка. вдохновляете на большее)
@КонстантинГомзин
@КонстантинГомзин Жыл бұрын
Как говорится : лучше полчаса потерять, потом за пять минут долететь...😂 А вообще, такое обучение, на наглядных и простых примерах самое лучшее обучение и лучше, чем кучу теорий пересмотреть
@vladislavby4657
@vladislavby4657 Жыл бұрын
Четко, ясно и понятно. Ставлю лайк! И подписываюсь!
@oldcoders
@oldcoders Жыл бұрын
Спасибо. Через пару дней выйдет еще одно видео из этой серии.
@user-xu9tb7oe2z
@user-xu9tb7oe2z 2 жыл бұрын
Хороший пример!!! Как раз что оо подобное мне нужно сделать с огромным дампом файлов, попробую пайтон
@Sunwait-nsk
@Sunwait-nsk 2 жыл бұрын
Спасибо. Очень понятно, просто.
@soul.numero
@soul.numero 2 жыл бұрын
Потрясающе!!!! СПАСИБО, СПАСИБО ЗА ВИДЕО!!!!
@АнатолийСкитяев-р1о
@АнатолийСкитяев-р1о 2 жыл бұрын
Программа сделана качественно, под конкретную задачу. Обычно же программисты пишут для многих пользователей. Только в этом и разница)) Но скрипт можно легко поправить, если у кого-то будет другой набор данных при аналогичной задаче. Так что - зачётно сделано. И объяснение на высоте. Как программист и преподаватель оцениваю данный ролик на 5+.
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо!
@igtar3926
@igtar3926 2 жыл бұрын
Выкладывайте пожалуйста исходный код, думаю многим было бы приятно его почитать самостоятельно после просмотра видео.
@oldcoders
@oldcoders 2 жыл бұрын
О, я думал программка маленькая, поэтому код итак весь на одном экране. Чего там смотреть :)
@ОльгаЖабко
@ОльгаЖабко 2 жыл бұрын
Огонь просто! Закончу учиться на Степике - пойду на Нетологию
@леонидагарков-ш7н
@леонидагарков-ш7н 2 жыл бұрын
Вы большой молодец, пожалуйста всегда продолжайте в том же духе, от просмотра получил большое удовлетворение, так что спасибо вам большое и всего самого наилучшего!!!
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо
@rucat284
@rucat284 2 жыл бұрын
В идеале конечно ещё обернуть в функции и добавить if __name__ == '__main__'. Так хотя бы новички будут сразу правильный код писать.
@АлександрЮшкин-о5о
@АлександрЮшкин-о5о 2 жыл бұрын
Недавно узнал про enumerate(). С его помощью счетчик создается: for counter, element in enumerate(list): тело цикла. Counter - индекс элемента element в list.
@galeot7112
@galeot7112 Жыл бұрын
Ох как круто же это, вот так взять и что-то создать, тоже решил пойти на курсы Python в свои 35 годиков, так как учиться чему-то новому в наше время только плюс, сейчас ищу ноут))
@kirillsukharzheuski
@kirillsukharzheuski 2 жыл бұрын
Красавчик!!! Четкий видос!
@АлмазМ-й4ф
@АлмазМ-й4ф Жыл бұрын
требуем следующий части
@oldcoders
@oldcoders Жыл бұрын
Есть видео из этой серии, python + excel
@Unitenok
@Unitenok 2 жыл бұрын
Супер!!! Благодарю. Как раз то что надо 👌
@ThePirateHistory
@ThePirateHistory 2 жыл бұрын
Ну камон, при первых запроса типо пробижаться и собрать фото, выдает правильный код, в котором не нужно так грубо и ресурсоёмко использовать try except, а так изменение директории. А так же работа со строками, это ужас, сложно следить редактировать, ведь есть такие вещи как f стринги, легчайшие. Этот синтаксис уже так давно, лучше его использовать, качество кода моментом повышается, а так же читаемость, и редактируемость. Так же есть функции чтобы строить универсальный путь до файлов как os.path.join() пример: "os.path.join('newphotos', 'photo')" Так же при работе с файлами есть прекрасный метод который разобьёт весь путь файла универсально file.split(os.sep). Так же при работе с папками не нужно постоянно менять деректорию туда сюда чтобы создать папки, тем более папки в папках, для это есть функция os.makedirs(new_path_to_photo_folder, exist_ok=True) Вообщем вот код который собрал за минут 20 с написанием данного текста. Советую гуглить, множество вещей уже написано и написано правильно-оптимизировано, при этом кайф что ты что-то создал будет ещё больше, так как смотришь на код чистый красивый, прям настрое внизу живота появляется. pastebin . com / nPq7egRJ
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо!! Очень круто. Но все таки совсем начинающему сложновато. Далеко от «простой человеческой» логики. А glob glob я вообще первый раз вижу 😵
@jurtaev1980008
@jurtaev1980008 2 жыл бұрын
Видос -просто бомба! Спасибо огромное!
@Bagdashka
@Bagdashka 2 жыл бұрын
Можно ещё сделать, чтобы программа показывала текущую папку, выбор папки, и подтверждение операции.
@oldcoders
@oldcoders 2 жыл бұрын
Это уже усложнение программы, не особо нужно, а времени потрачу больше
@alekseychurikov3693
@alekseychurikov3693 2 жыл бұрын
Спасибо за видео! Очень классно и понятно все!
@Mr.Shokoladniy
@Mr.Shokoladniy 2 жыл бұрын
Если так тебе делать приходится часто, то написать полноценную программу конечно стоит. Но я в основном сталкиваюсь с тем, что нужно выполнить подобную рутинную вещь 1 раз, в таких случаях я использую банальный автокликер. Для этой цели скрипт был бы написан не больше чем за 5 минут, выполнился бы раз в 50 дольше, но как по мне так логичнее
@powerquerypowerbi7808
@powerquerypowerbi7808 2 жыл бұрын
спасибо большое за обучение, очень доступно !
@damienamfiet8757
@damienamfiet8757 2 жыл бұрын
в try...except блоке правильнее будет писать не pass, а continue.
@RenderDragon
@RenderDragon 2 жыл бұрын
Давай ещё задачи на Codewars!
@oldcoders
@oldcoders 2 жыл бұрын
Будет
@los.vladdos831
@los.vladdos831 2 жыл бұрын
Отличное видео! На маке конечно быстрее было бы встроенным поисковиком это сделать, но в качестве тренировки - самое то!
@Roman-cp7im
@Roman-cp7im 2 жыл бұрын
Сколько видосов смотрю)Но после этого реально все понял)Крут)))))
@sergioborussa
@sergioborussa 2 жыл бұрын
Очень интересно! Спасибо!
@oldcoders
@oldcoders 2 жыл бұрын
Надеюсь пригодится :)
@сашапетров-и4ч
@сашапетров-и4ч 2 жыл бұрын
В модуле os есть walk, как раз для таких случаев. Заходит во все папки и отбирает файлы.
@АлексейСоков-ь8и
@АлексейСоков-ь8и 2 жыл бұрын
Обожаю такие ролики с программированием "файл менеджмента" 📁 Сам начал знакомство с Пайтоном именно на этой почве, потому что представлял, как результат можно применить на практике ⚙ Для себя подчерпнул: ✅ для копирования использовать "shutil" ✅ можно использовать "break", чтобы прогнать цикл 1 раз в тестовом режиме ✅ вместо "print" использовать debug-режим ✅ как вариант вместо "os.path.isdir" использовать связку "try... except..." Было бы интересно увидеть ролик в таком же "рутинном" формате о работе с Excel-файлами (например, как пробежаться по куче таблиц и точечно собрать из них информацию) 📗
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо. Да, сам думаю что хорошо бы про Эксель снять, но нет блин реальной задачи на горизонте :) те программы что я использую - мной уже давно написаны :)
@АлексейСоков-ь8и
@АлексейСоков-ь8и 2 жыл бұрын
@@oldcoders Ну да, тут весь смысл именно в ПРАКТИЧНОСТИ задачи... 😏 А что используете для работы с Excel через Пайтон? Я пока только про "OpenPyXL" слышал 🤔
@oldcoders
@oldcoders 2 жыл бұрын
Openpyxl, xlrd (они одинаковые, просто для разных файлов - xlsx и xls. И pandas часто пользуюсь, удобно загрузить в датафрейм всю таблицу и делать что хош.
@АлексейСоков-ь8и
@АлексейСоков-ь8и 2 жыл бұрын
@@oldcoders Спасибо. Пока общаюсь с Excel только на VBA, и меня всё устраивает) Не представляю, чего нового сможет предложить Пайтон в этом плане, но интересно)
@oldcoders
@oldcoders 2 жыл бұрын
В плане обработки данных ничего нового не предложит, но зато можно выйти за границы дозволенного в VBA :) И передавать данные куда угодно и веб приложение сделать для этих данных и так далее
@суровый_Сибиряк
@суровый_Сибиряк Жыл бұрын
Я хотя и "дедушка" 50 лет 😀в программировании, сейчас учусь в нетологии на DS , только, что прошли материал. Так та я АСУТП шник. Мои шаги не уверенныев питоне, но приятно осознавать то, что я понимаю код, о чем речь. А так как я "ленивый" чел в хорошем смысле слова, то освою тоже питон👍
@arsenskavin130
@arsenskavin130 Жыл бұрын
У меня года с 2006 остро стоит задача сортировки файлов в downloads и я постоянно дописываю нехитрый скриптик двигающий файлики по папочкам из года в год. Так мой скрипт переехал из обычного цикла со списками из listdir на os.walk(), которая немного сложнее но делает всё тоже самое только сразу создаёт и списки поддиректорий и файлов. Работать с ней немного сложнее потому что функция создаёт генераторы вместо списков, но кода получается меньше и работает она вроде как быстрее ручного обхода директорий через listdir. А после выхода 3.6 я начал постепенно переезжать на pathlib. Конкатенация путей файлов всегда меня настораживала и где только возможно я пользовал os.path.join() чтобы всё было правильно и я нигде не забыл слэш или ещё что-нибудь. Так вот, pathlib делает работу с путями культурнее и приятнее, когда разберёшься и привыкнешь, к тому же скрипт можно будет таскать с винды на линукс и обратно не переписывая, pathlib сам выберет слэши или бэкслеши для путей. Из нерешенного у меня остались штуки типа дубликатов файлов и директорий, и странные вылеты когда файлов очень много, а также что приходится придумывать сложный регекс для сортировки по директориям которые соответствуют категориям или тегам, например Wallpapers или Art. Один из последних релизов Питончика решил проблему с длиной путей... Вообщем, мой простой скриптик со временем превратился немного в комбайн, но в процессе я научился многим новым штукам, базовому рефакторингу, лаконичному коду и best practices. Короче: не используйте конкатенацию, используйте встроенные модули или проверенные библиотеки под конкретные задачи, делайте генераторы вместо списков для больших объёмов данных, не переусложняйте код и постоянно делайте проверки перед критическими операциями типа rmdir() и подобными.
@stas_v
@stas_v 2 жыл бұрын
Шикарное видео! Спасибо большое!
@Tommy7417
@Tommy7417 2 жыл бұрын
Люблю реальне задачи, а оптимизировать рутину ещё больше
@СергейСабуров-р9ж
@СергейСабуров-р9ж 2 жыл бұрын
общепринято использовать IF , когда TRY повторяет его действие. все же try - cоздавалось для других целей, нежели аналог IF. он нужен для работы над ошибками, которые возникают, для логирования и тп. не помyю есть ли это в PEP8 , но лучше когда проще - а проще это IF.
@ИльяБорщ-п6н
@ИльяБорщ-п6н 2 жыл бұрын
Спасибо за видео! Мне, как новичку, было невероятно полезно.
@ДмитрийВасильев-щ3и
@ДмитрийВасильев-щ3и 2 жыл бұрын
Спасибо! Очень полезное видео!
@dronshaman
@dronshaman 2 жыл бұрын
Орнул. Для защиты нежной психики программистов, ошибки называются исключениями)))
@svvonline1
@svvonline1 2 жыл бұрын
Ошибки и исключения - это не одно и то же.
@nikoleshlizinger5506
@nikoleshlizinger5506 Жыл бұрын
ты просто гений, лучший туторил
@mazur_vg
@mazur_vg 2 жыл бұрын
Очень интересное видео! Спасибо!
@СергейЩербаков-ю9л4щ
@СергейЩербаков-ю9л4щ 2 жыл бұрын
Огонь! Удивительно, но ставлю лайк на рекламу ))) Являюсь одним из аспирантов на курсе «Python-разработка для начинающих» от Нетологии. И подтверждаю, в чате и на курсе очень много людей кому под 40, как и мне, и за 40. Стараемся помочь каждому познакомиться с их первым языком программирования Python. Приходите, мы вас ждём =) Пы.Сы. Сама программа тоже огонь! То что надо для новичков! - реальное применение Python. Просто, кратко, лаконично, и экономит уйму времени )))
Как найти первую реальную задачу изучая программирование
16:11
Клуб дедов-программистов
Рет қаралды 38 М.
Понять Django. Пишем "Hello world". Объясняю просто и с картинками.
25:49
Клуб дедов-программистов
Рет қаралды 186 М.
Incredible: Teacher builds airplane to teach kids behavior! #shorts
00:32
Fabiosa Stories
Рет қаралды 12 МЛН
🍉😋 #shorts
00:24
Денис Кукояка
Рет қаралды 3,8 МЛН
pumpkins #shorts
00:39
Mr DegrEE
Рет қаралды 72 МЛН
哈哈大家为了进去也是想尽办法!#火影忍者 #佐助 #家庭
00:33
Пишу простую, но реальную программу. Python + Excel.
18:48
Клуб дедов-программистов
Рет қаралды 139 М.
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
Решаю простые задачки на Python с сайта Codewars
13:44
Клуб дедов-программистов
Рет қаралды 454 М.
Делаю нейросеть с нуля
17:17
Onigiri
Рет қаралды 1,4 МЛН
Что пишут на Python? ПЛЮСЫ и МИНУСЫ Python
12:42
Sergey Nemchinskiy
Рет қаралды 573 М.
Решаю простые задачки на Python с сайта Codewars - ЧАСТЬ 2.
22:16
Клуб дедов-программистов
Рет қаралды 76 М.
Incredible: Teacher builds airplane to teach kids behavior! #shorts
00:32
Fabiosa Stories
Рет қаралды 12 МЛН