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

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ต.ค. 2024

ความคิดเห็น • 480

  • @robot_pyotr
    @robot_pyotr 2 ปีที่แล้ว +232

    Помнится появилась у меня на работе одна мерзкая рутинная задача по сведению текста из нескольких txt-файлов в .doc документ. А в doc файле, перед началом куска текста нужно было сделать заголовок с текстом из названия файла.
    Документов было около 5к, в разных папках. Начальник запряг 3 человека на эту работу, т.к. нужно было сделать срочно до конца рабочего дня.
    Мы поделили файлы и приступили к работе. По-началу всё шло бодренько, но через полчаса стало понятно, что до конца рабочего дня мы точно не успеем такими темпами.
    После этого мне в голову пришла идея автоматизировать задачу, но вот беда: на работе нельзя ничего установить на ПК, т.к. действует запрет групповой политики на запуск и исполнение неразрешённого софта, а нормального ПК без ограничений групповой политики не было.
    Я вышел покурить и в курилке меня осенило "можно же использовать макросы vba из самого MS офиса"!
    До этого я никогда не работал с vba, но в качестве хобби изучал дома С#. Раскуривая скудные мануалы по vba, чертыхаясь, я принялся писать макрос. Писал его около часа. Всё это время на меня шипели коллеги за то, что я не копирую файлики, а занимаюсь какой-то неведомой фигнёй.
    И вот макрос был написан. Он заходил в папки, считывал txt файлы и писал их в созданный через этот же макрос doc файл, не забывая формировать заголовки. Затем макрос сохранял doc файл в аккуратную папку "Обработано".
    Все файлы макрос обработал секунд за 10. В это же время мои коллеги обработали около 1/4 от всего объёма.
    Оставшиеся 4 часа до конца рабочего дня мы отдыхали.

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +41

      Шикарная история! Всегда впечатляет НАСКОЛЬКО компьютеры могут экономить время.

    • @msvru
      @msvru ปีที่แล้ว +12

      По работе нужно было забить большое количество данных в базу 1С через очень неудобный web интерфейс. Поскольку творческие задачи гораздо интереснее монотонных, написал скрипт на autoit (на моём рабочем ПК я админ) и весь процесс я тупил в телефон, поглядывая как трудится мой скрипт тыкая в кнопочки и заполняя поля.

    • @ВладимирОсадчий-р5о
      @ВладимирОсадчий-р5о ปีที่แล้ว +7

      Да, воодушевляет изучить программирование. Хотя бы для личного развития. Пример шикарный! 👍👍👍

  • @RadicalCrab
    @RadicalCrab 2 ปีที่แล้ว +182

    Хотел вставить 5 копеек по коду, но потом подумал что так будет слишком душно, поэтому напишу свой лайфхак по практике программирования: я ходил по форумам где тусуются начинающие изучать программирование студенты и писал для них бесплатно программы, под их относительно простые учебные задачи. Это помогло мне набить руку с использованием фактически неограниченного генератора вполне осмысленных заданий. А автору спасибо за контент, всегда рад когда кто-то открывает для себя новые интересы, особенно если это программирование )

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +11

      Не! Напишите пожалуйста про код, как оптимальнее было бы. Только не в плане экономии памяти, типа лучше кортеж вместо списка или конкатенация много памяти ест, а именно что нить интересное 😀

    • @RadicalCrab
      @RadicalCrab 2 ปีที่แล้ว +38

      @@oldcoders оптимизировать по памяти или скорости одноразовые утилиты смысла, конечно, мало, мне скорее бросились в глаза фундаментальные вещи - например использование исключений для обработки ошибок. Все таки обычно стараются сделать так, чтобы исключений не возникало, именно на то они и исключения, а используя их таким образом вы как бы перекладываете ответственность с программиста на интерпретатор. Обработчик исключений, в первую очередь, нужен для внештатных ситуаций, а тут ситуация прогнозируемая и вполне штатная. Ну и по мелочи там, например *chdir* не нужен, ведь *listdir* принимает путь для которого надо вернуть листинг или то, что *file = os.path.join(dir, dir + '_1.jpg')* и второй *listdir* не требуется, плюс можно сразу проверить есть ли такой файл и если нет - вывести ошибку, что для такой-то папки не найден требуемый файл. И все равно подушнил, но я не хотел! )

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +47

      Классно, спасибо!! Ничего не душнилово, все так и есть! Реально оптимизация 👍👍 захотелось даже продолжение снять «как оптимизировать программу» 😀

    • @afkmate
      @afkmate 2 ปีที่แล้ว +10

      @@oldcoders Было бы интересно посмотреть)

    • @TeMyAp
      @TeMyAp 2 ปีที่แล้ว +8

      @@oldcoders сними про это продолжение, зацепило. 20-30 ещё минут

  • @Jack08F
    @Jack08F 2 ปีที่แล้ว +44

    Дружище, тебя так приятно слушать. Не быстро, не медленно, интонация не утомляет. (бывший инженер по качеству, рентгенотехника. Меняю профессию, в поисках и в процессе обучения)

  • @trankov
    @trankov 2 ปีที่แล้ว +27

    1. Не нужно использовать `dir` как имя переменной, потому что это имя глобальной функции dir().
    2. Для работы с файловой системой лучше использовать pathlib.
    3. try...except нормальный путь для Python, но лучше просто проверять на директорию
    4. Вместо переменной counter лучше пользоваться enumerate()
    5. На Маке для этой задачи лучше было запустить Automator, а не писать скрипт руками

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +11

      Спасибо! Про Automator я даже не знал что он существует 😬😀

  • @СтепСтеп-п1л
    @СтепСтеп-п1л 2 ปีที่แล้ว +19

    Спасибо вам большое! Делайте пожалуйста почаще такие видео!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +3

      Постараюсь! :)

  • @progway8574
    @progway8574 2 ปีที่แล้ว +27

    Вот это вообще красота! Где-то 1/3, может 2/3 из этого ролика информации я не знал (мне просто 14 и python только учу), но мне очень пригодились знания работы с командной строкой Windows, поэтому думаю, что в этом не очень сложно разобраться.
    С такими роликами становиться понятным, для чего нужны все эти функции и операции.
    К примеру, если нужно перебрать не 487 папок, а несколько тысяч
    😨
    Поэтому большое спасибо Вам за ролик. Попробую тоже по Вашему примеру написать что-то похожее)

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +2

      Ты молодец 👍👍

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +4

      Не соглашусь. Это все не надо учить. Это надо понять.
      Грубо говоря как механик не должен знать как устроен автомобиль каждого бренда. Встречает неизвестный автомобиль - берет мануал и разбирается. Затем ремонтирует.

    • @info_code
      @info_code ปีที่แล้ว +1

      А мне 13, тоже обожаю этот канал)Изучаю Питон около года, и с папками вообще дела не имела=)

    • @user-mh7yr4mg6u
      @user-mh7yr4mg6u ปีที่แล้ว +1

      счастливый человек, что так рано начал осваивать программирование. Очень выигрышный ход, который существенно упростит и улучшит твоё будущее. Был бы кто-то, кто бы мне в 14 посоветовал начать учить программирование, был бы благодарен этому человеку

  • @MrAlexVelik
    @MrAlexVelik 2 ปีที่แล้ว +45

    Спасибо! Посмотрел все ваши видео, тоже теперь учусь программировать. Было приятно, что всё так понятно и разложено по полочкам, вы большой молодец! Жду новых ваших видео, это очень вдохновляет. 😌

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +9

      Отлично, очень рад! Пишите что хотелось бы увидеть, про что снять

    • @felix30ua
      @felix30ua 2 ปีที่แล้ว

      олень, учиться нужно у людей, которые в этом разбираются - Бизли, Лутц, Свейгарт, Хеллман, а не у лоха в кепке!! А то "вырастешь", как этот уипан - нах никому не нужный)))
      зы читай книги, лентяй)

  • @_garik__
    @_garik__ 2 ปีที่แล้ว +12

    Ура! Дед вернулся)))!

  • @random.user2022
    @random.user2022 2 ปีที่แล้ว +84

    Спасибо за крутое видео! Приятно наблюдать за решением конкретной задачи, а не какой-то абстрактной 🔥👍

    • @Fant1040
      @Fant1040 2 ปีที่แล้ว +1

      Обучение Python с нуля. Мой опыт - th-cam.com/video/LYxUvim8hl0/w-d-xo.html

  • @averse27
    @averse27 ปีที่แล้ว +3

    Мега полезно. Я много нового узнал из практики, а не только из теории, поэтому огромное спасибо за это видео

  • @denyes342
    @denyes342 2 ปีที่แล้ว +10

    Спасибо за реальный пример - так действительно понятнее зачем это всё!)

  • @PTolkachev
    @PTolkachev 2 ปีที่แล้ว +4

    Во втором цикле, когда нашли нужный файл можно было break добавить. Нужен же только один файл, зачем просматривать остальные, если уже нашли нужный? А ещё можно было не все файлы выбирать, а по маске "*_1.jpg".

  • @8888UNIVERSE8888
    @8888UNIVERSE8888 ปีที่แล้ว +6

    А вы молодец, правда, очень хорошо, как настоящий учитель показываете по самым маленьким шагам как все делаете =) Я хоть и пишу на Питоне, но просто посмотреть как вы создаете программу было приятно.

  • @ВладимирОсадчий-р5о
    @ВладимирОсадчий-р5о ปีที่แล้ว +2

    Спасибо за полезное, увлекательное, понятное и познавательное видео. И за ссылку на бесплатный ознакомительный курс. 👍

  • @Fedor_life
    @Fedor_life 2 ปีที่แล้ว +4

    Чувак, ты меня вдохновляешь, капец как!!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      😀 очень рад

  • @Роман-я1ш9ш
    @Роман-я1ш9ш 2 ปีที่แล้ว +5

    Чувак, ты молодец! Смотрю тебя с самого начала!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +1

      Спасибо 🙌

  • @sashokkuzmenko7814
    @sashokkuzmenko7814 2 ปีที่แล้ว +6

    Дякую за відео, цікаво дивитись за вирішенням реальної задачі!

  • @АлсуХасанова-р4у
    @АлсуХасанова-р4у ปีที่แล้ว +3

    Сплошное удовольствие от познания нового ❤

  • @kekkekov5756
    @kekkekov5756 2 ปีที่แล้ว +5

    Рекомендую почитать доку по модулю pathlib и 428 пеп на него, для более удобного апи работы с фс. Ну и лучше, конечно, написать функцию, которая принимает путь до исходной папки и путь куда складывать готовы файлы, чтобы не менять глобальный стейт через os.chdir. Т.к потом наступишь на грабли при затаскивании такого кода в другой проект, где есть логика, подвязанная на рабочую директорию.

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Спасибо!

  • @Steelglowhawk
    @Steelglowhawk 2 ปีที่แล้ว +3

    Отдельное спасибо за блок по использованию Debug. Теперь все будет ещё «профессиональнее» ).

  • @FxLikePro
    @FxLikePro 2 ปีที่แล้ว +3

    Поставил лайк за шикарный видеоролик.
    Мне понравилась не только логика мыслительного процесса при решении настоящей задачи, но и подход к ней.
    А, именно:
    1. появление ошибки и её решение
    2. тестирование на каждом шагу написания программы с плавным переходом на debugging (отладчик)
    3. поиск той или иной функции
    Осталось только программу описать, чтобы не забыть для чего она написана. Я думаю, что для каждой такой программы следует делать
    теги для быстрого поиска подобных программ из огромного множества старых. Это как искать фотку из огромного количества.
    Продолжайте снимать видеоролики в том же духе! Успехов всем нам!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Спасибо! Да, можно в начале программы написать комментарий для чего она и тд

  • @mustafinabulhairc-0kn286
    @mustafinabulhairc-0kn286 2 ปีที่แล้ว +1

    Спасибо вам большое, что на самом деле показываете проекты и как это делается.

  • @olorin11
    @olorin11 2 ปีที่แล้ว +18

    Очень круто видео, показывается логика разработки, спасибо. Это лучшее объяснение

  • @PaulCherepnin
    @PaulCherepnin 2 ปีที่แล้ว +12

    Ваш стиль подачи материала - 🔥 Можно кучу тренеров в онлайн школах программирования заменить вашим объяснением

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +2

      ☺️☺️☺️ вроде обычно объясняю. Но спасибо!

    • @ВладимирОсадчий-р5о
      @ВладимирОсадчий-р5о ปีที่แล้ว +1

      @@oldcoders шикарно обьясняете. 👍

  • @septem3712
    @septem3712 2 ปีที่แล้ว +1

    Очень интересно! Пожалуйста продолжайте выкладывать видео! Всë понятно объясняете. Благодарю Вас!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Спасибо! Выкладываю :)

  • @vladp1793
    @vladp1793 2 ปีที่แล้ว +3

    Можно было обойтись без chdir, так как listdir принимает параметр path - та директория содержимое которой будем обходить. Плюс вместо try except, можно использовать os.path.isfile или os.path.isdir

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Спасибо!

  • @user-Alex248
    @user-Alex248 2 ปีที่แล้ว +3

    Вот такой контент, само то что надо!

  • @АлександрА-я5э3ю
    @АлександрА-я5э3ю 2 ปีที่แล้ว +2

    Спасибо за видео!!! Действительно интересно наблюдать за решением реальной задачи.

  • @alexanderchebotariov7230
    @alexanderchebotariov7230 2 ปีที่แล้ว +9

    Спасибо за видео. Могу посоветовать вместо конкатенации использовать f-strings (f'some string value {some_variable_or_simple_code}'), как по мне, так удобнее. Или (конкретно под задачу с путями к папкам/файлам) os.path.join().

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +3

      Спасибо!! Да!

    • @iamlexs
      @iamlexs 2 ปีที่แล้ว +2

      для работы с путями файлов надо использовать pathlib, плюшек очень много

  • @AlexeyRiched
    @AlexeyRiched 2 ปีที่แล้ว +1

    просто бомбище! вдохновляешь безумно!

  • @АлексейЦиплин
    @АлексейЦиплин 2 ปีที่แล้ว +5

    Рад видеть главного деда)))

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Взаимно 🙌

  • @He1LBoy34
    @He1LBoy34 2 ปีที่แล้ว +11

    Спасибо! Очень крутой контент для начинающих разработчиков. Жду новых видео =)

  • @natisgecas5729
    @natisgecas5729 2 ปีที่แล้ว +1

    Glad to see you again. We need more videos like this one. Thanks for your job !

  • @paleface_brother
    @paleface_brother 2 ปีที่แล้ว +1

    Большое спасибо! Нередко нужно работать именно с файлами и папками.

  • @Dark161161
    @Dark161161 2 ปีที่แล้ว +3

    Очень чётко , респект. Продолжайте ваше дело 👍

  • @berrickd8653
    @berrickd8653 2 ปีที่แล้ว +5

    Спасибо! Я как раз дед Нью би, учусь Пайтону и как раз сдал домашку по ос и начал изучать трай эксепт. Так что Ваш ролик зашёл в десятку. С нетерпением жду новых, дедомотивирующих роликов! До пенсии ещё далеко, спасибо Пенсионной реформе. Может ещё успею овладеть новой специальностью. Может хоть репетитором у школоты смогу устроиться

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +1

      😀👌🤘

  • @cyclestart_youtube_sosi_drova
    @cyclestart_youtube_sosi_drova 2 ปีที่แล้ว +5

    Ну ты дед! Ну красава! Вдохновил меня наконец-то под свои нужды попитонить)
    На счёт деда это прикол, я сам тебя догоню через пару лет) изложил как надо, коротко и ясно, и весело 👍

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +2

      Класс :)) 👍

  • @Troubleshooter539
    @Troubleshooter539 ปีที่แล้ว +2

    Автор ролика ты просто мой кумир. В 44 заморочился с обучением, а теперь делаешь людям добро. Удачи тебе и совет: Создавай свой курс!!! Желающих будет куча)))

    • @oldcoders
      @oldcoders  ปีที่แล้ว

      Спасибо!! А какой курс по вашему должен быть? Основы Питона - таких курсов много, бесплатных и хороших.

  • @ОльгаВ-ю9о
    @ОльгаВ-ю9о 2 ปีที่แล้ว

    Рада видеть!! Удачи!

  • @yuryradchenko6058
    @yuryradchenko6058 2 ปีที่แล้ว

    Я такую задачу решал без программирования, средствами Total Commander. Сначала с помощью Ctrl+B включал отображение всех файлов текущего каталога и подкаталогов в одну кучу. А потом просто с помощью регулярного вьіражения отфильтровьівал нужное и перемещал все в отдельную папку.

  • @russarRus
    @russarRus ปีที่แล้ว

    Спасибо, тезка, интересно рассказываешь)

  • @michaelmushers6368
    @michaelmushers6368 2 ปีที่แล้ว +1

    Тоже год назад начал изучать питон, прям очень нравится, а как сел за свою первую программу то не мог оторваться. Прям на рабочем компе написал программу для проверки знаний для коллег. Спасибо большое за видосы. Кстати на iPhone мне учиться очень помогла и помогает программа pythonista даже pip пакеты туда можно ставить, рекомендую.

  • @nik01aich
    @nik01aich ปีที่แล้ว

    продолжай, не останавливайся!

  • @Ievgenii66
    @Ievgenii66 2 ปีที่แล้ว

    Спасибо за видео! По возможности почаще выходи в эфир!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Вот сегодня новое видео вышло :)

  • @markertlogic
    @markertlogic 2 ปีที่แล้ว

    Только знакомлюсь с темой, Ваши видео супер! Настолько это круто и интересно)

  • @pavelmelnik9952
    @pavelmelnik9952 2 ปีที่แล้ว +1

    Никак не связан с питоном и из любопытства посмотрел видео. Уж больно стало интересно как выглядит автоматизация на питоне.
    Видео понравилось, лайк, подписка. Если кого-нибудь захочу освоить питон, начну с вашего канала. А пока, буду смотреть все что Ютуб будет от вас предлагать.
    Приятно и понятно говорите.

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Спасибо! 🙌

  • @KOLCHASIK
    @KOLCHASIK ปีที่แล้ว +1

    да, прекрасный метод подачи информации. спасибо!!

  • @igorratnik2357
    @igorratnik2357 2 ปีที่แล้ว

    Классно. Без лишней воды. Жирный вам лайк)))

  • @ЕлкаФ
    @ЕлкаФ 2 ปีที่แล้ว

    пришла посмотреть, что за программа для автоматизации рутины. Итог: наконец-то поняла как пользоваться дебагером. Спасибо

  • @АндрейНаговин
    @АндрейНаговин ปีที่แล้ว

    Братик, огромный респект тебе, начинаю потихоньку вникать в питон, надеюсь скоро брошу работу в такси!

  • @IvanPeshkoff
    @IvanPeshkoff 2 ปีที่แล้ว +2

    Большое спасибо за Вашу работу. Мотивирует и дает дополнительные знания, расширяет кругозор.

  • @DaddyDenTV
    @DaddyDenTV ปีที่แล้ว

    Спасибо большое за урок. Голос очень приятный и все очень доходчиво.

  • @padreromario
    @padreromario 2 ปีที่แล้ว

    ну ты просто крут! молодчина! приятно посмотреть...

  • @mdbm500
    @mdbm500 2 ปีที่แล้ว

    Спасибо. у меня бывают подобные задачи, попытался сам написать, но на бегу не получилось, отложил. я руками поиском искал нужные файлы и разносил их. Ура, долой рутину.

  • @magamedgeydarov1675
    @magamedgeydarov1675 2 ปีที่แล้ว

    Огромное спасибо, очень круто получилось!!!
    Я в самом начале изучения и ваше видео очень наглядно показало возможность применения!

  • @МихаилСемерухин
    @МихаилСемерухин ปีที่แล้ว

    Спасибо за видео)) Очень круто учить программирование на примерах!!

    • @oldcoders
      @oldcoders  ปีที่แล้ว

      Думаю скоро ещё одно видео из этой серии выпущу

  • @terehan88
    @terehan88 2 ปีที่แล้ว +7

    Спасибо за видео! Было интересно посмотреть над реализацией программы для реальной задачи.
    P.S. Последний print в программе нужно было сделать после операции увеличения счётчика counter, тогда бы вывелись все 487 объектов в консоль, а не 486. Ну это так мелочи)) Ещё раз спасибо за видео!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +6

      Нет, там нумерация с 0 шла, поэтому 486 это нормально. Другое дело что надо было счётчик ставить когда скопировал файл, тогда бы конкретно были посчитаны количество файлов.
      А я поставил его сразу в начале цикла - просто считал количество элементов в списке , достаточно бесполезный счётчик получился 😀

  • @victormakovchik249
    @victormakovchik249 ปีที่แล้ว

    Ещё можно в обработку номера папки перед созданием - добавить обработку пробелов, или заменить их на символ нуля, например.

  • @dmytrolinnik6938
    @dmytrolinnik6938 2 ปีที่แล้ว +3

    Замечательное объяснение! Было очень интересно. Надеюсь будет ещё такое объяснение и применение в практике языка программирования. Лайк, подписка.

  • @_hugoru_
    @_hugoru_ 2 ปีที่แล้ว

    Классно! Супер! Ты большой молодец, снимай еще

  • @ordinar007
    @ordinar007 2 ปีที่แล้ว

    вы умничка. вдохновляете на большее)

  • @КонстантинГомзин
    @КонстантинГомзин ปีที่แล้ว +1

    Как говорится : лучше полчаса потерять, потом за пять минут долететь...😂 А вообще, такое обучение, на наглядных и простых примерах самое лучшее обучение и лучше, чем кучу теорий пересмотреть

  • @vladislavby4657
    @vladislavby4657 ปีที่แล้ว

    Четко, ясно и понятно. Ставлю лайк! И подписываюсь!

    • @oldcoders
      @oldcoders  ปีที่แล้ว

      Спасибо. Через пару дней выйдет еще одно видео из этой серии.

  • @user-xu9tb7oe2z
    @user-xu9tb7oe2z 2 ปีที่แล้ว

    Хороший пример!!! Как раз что оо подобное мне нужно сделать с огромным дампом файлов, попробую пайтон

  • @Sunwait-nsk
    @Sunwait-nsk 2 ปีที่แล้ว +1

    Спасибо. Очень понятно, просто.

  • @soul.numero
    @soul.numero 2 ปีที่แล้ว

    Потрясающе!!!! СПАСИБО, СПАСИБО ЗА ВИДЕО!!!!

  • @АнатолийСкитяев-р1о
    @АнатолийСкитяев-р1о 2 ปีที่แล้ว +1

    Программа сделана качественно, под конкретную задачу. Обычно же программисты пишут для многих пользователей. Только в этом и разница))
    Но скрипт можно легко поправить, если у кого-то будет другой набор данных при аналогичной задаче.
    Так что - зачётно сделано. И объяснение на высоте. Как программист и преподаватель оцениваю данный ролик на 5+.

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Спасибо!

  • @igtar3926
    @igtar3926 2 ปีที่แล้ว +1

    Выкладывайте пожалуйста исходный код, думаю многим было бы приятно его почитать самостоятельно после просмотра видео.

    • @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 ปีที่แล้ว +1

    Красавчик!!! Четкий видос!

  • @АлмазМ-й4ф
    @АлмазМ-й4ф ปีที่แล้ว

    требуем следующий части

    • @oldcoders
      @oldcoders  ปีที่แล้ว

      Есть видео из этой серии, python + excel

  • @Unitenok
    @Unitenok 2 ปีที่แล้ว

    Супер!!! Благодарю. Как раз то что надо 👌

  • @ThePirateHistory
    @ThePirateHistory 2 ปีที่แล้ว +1

    Ну камон, при первых запроса типо пробижаться и собрать фото, выдает правильный код, в котором не нужно так грубо и ресурсоёмко использовать 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 ปีที่แล้ว +1

      Спасибо!! Очень круто. Но все таки совсем начинающему сложновато. Далеко от «простой человеческой» логики. А glob glob я вообще первый раз вижу 😵

  • @jurtaev1980008
    @jurtaev1980008 2 ปีที่แล้ว

    Видос -просто бомба! Спасибо огромное!

  • @Bagdashka
    @Bagdashka 2 ปีที่แล้ว

    Можно ещё сделать, чтобы программа показывала текущую папку, выбор папки, и подтверждение операции.

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว

      Это уже усложнение программы, не особо нужно, а времени потрачу больше

  • @alekseychurikov3693
    @alekseychurikov3693 2 ปีที่แล้ว

    Спасибо за видео! Очень классно и понятно все!

  • @Mr.Shokoladniy
    @Mr.Shokoladniy 2 ปีที่แล้ว +1

    Если так тебе делать приходится часто, то написать полноценную программу конечно стоит. Но я в основном сталкиваюсь с тем, что нужно выполнить подобную рутинную вещь 1 раз, в таких случаях я использую банальный автокликер. Для этой цели скрипт был бы написан не больше чем за 5 минут, выполнился бы раз в 50 дольше, но как по мне так логичнее

  • @powerquerypowerbi7808
    @powerquerypowerbi7808 2 ปีที่แล้ว

    спасибо большое за обучение, очень доступно !

  • @damienamfiet8757
    @damienamfiet8757 2 ปีที่แล้ว +1

    в try...except блоке правильнее будет писать не pass, а continue.

  • @RenderDragon
    @RenderDragon 2 ปีที่แล้ว +1

    Давай ещё задачи на Codewars!

  • @los.vladdos831
    @los.vladdos831 2 ปีที่แล้ว

    Отличное видео! На маке конечно быстрее было бы встроенным поисковиком это сделать, но в качестве тренировки - самое то!

  • @Roman-cp7im
    @Roman-cp7im 2 ปีที่แล้ว

    Сколько видосов смотрю)Но после этого реально все понял)Крут)))))

  • @sergioborussa
    @sergioborussa 2 ปีที่แล้ว +1

    Очень интересно! Спасибо!

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +1

      Надеюсь пригодится :)

  • @сашапетров-и4ч
    @сашапетров-и4ч 2 ปีที่แล้ว +1

    В модуле os есть walk, как раз для таких случаев. Заходит во все папки и отбирает файлы.

  • @АлексейСоков-ь8и
    @АлексейСоков-ь8и 2 ปีที่แล้ว

    Обожаю такие ролики с программированием "файл менеджмента" 📁 Сам начал знакомство с Пайтоном именно на этой почве, потому что представлял, как результат можно применить на практике ⚙
    Для себя подчерпнул:
    ✅ для копирования использовать "shutil"
    ✅ можно использовать "break", чтобы прогнать цикл 1 раз в тестовом режиме
    ✅ вместо "print" использовать debug-режим
    ✅ как вариант вместо "os.path.isdir" использовать связку "try... except..."
    Было бы интересно увидеть ролик в таком же "рутинном" формате о работе с Excel-файлами (например, как пробежаться по куче таблиц и точечно собрать из них информацию) 📗

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +1

      Спасибо. Да, сам думаю что хорошо бы про Эксель снять, но нет блин реальной задачи на горизонте :) те программы что я использую - мной уже давно написаны :)

    • @АлексейСоков-ь8и
      @АлексейСоков-ь8и 2 ปีที่แล้ว

      @@oldcoders Ну да, тут весь смысл именно в ПРАКТИЧНОСТИ задачи... 😏
      А что используете для работы с Excel через Пайтон? Я пока только про "OpenPyXL" слышал 🤔

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +1

      Openpyxl, xlrd (они одинаковые, просто для разных файлов - xlsx и xls. И pandas часто пользуюсь, удобно загрузить в датафрейм всю таблицу и делать что хош.

    • @АлексейСоков-ь8и
      @АлексейСоков-ь8и 2 ปีที่แล้ว

      @@oldcoders Спасибо. Пока общаюсь с Excel только на VBA, и меня всё устраивает) Не представляю, чего нового сможет предложить Пайтон в этом плане, но интересно)

    • @oldcoders
      @oldcoders  2 ปีที่แล้ว +1

      В плане обработки данных ничего нового не предложит, но зато можно выйти за границы дозволенного в 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 ปีที่แล้ว +2

    Спасибо за видео! Мне, как новичку, было невероятно полезно.

  • @ДмитрийВасильев-щ3и
    @ДмитрийВасильев-щ3и 2 ปีที่แล้ว

    Спасибо! Очень полезное видео!

  • @dronshaman
    @dronshaman 2 ปีที่แล้ว +1

    Орнул. Для защиты нежной психики программистов, ошибки называются исключениями)))

    • @svvonline1
      @svvonline1 2 ปีที่แล้ว

      Ошибки и исключения - это не одно и то же.

  • @nikoleshlizinger5506
    @nikoleshlizinger5506 ปีที่แล้ว

    ты просто гений, лучший туторил

  • @mazur_vg
    @mazur_vg 2 ปีที่แล้ว

    Очень интересное видео! Спасибо!

  • @СергейЩербаков-ю9л4щ
    @СергейЩербаков-ю9л4щ 2 ปีที่แล้ว

    Огонь! Удивительно, но ставлю лайк на рекламу ))) Являюсь одним из аспирантов на курсе «Python-разработка для начинающих» от Нетологии. И подтверждаю, в чате и на курсе очень много людей кому под 40, как и мне, и за 40. Стараемся помочь каждому познакомиться с их первым языком программирования Python. Приходите, мы вас ждём =)
    Пы.Сы. Сама программа тоже огонь! То что надо для новичков! - реальное применение Python. Просто, кратко, лаконично, и экономит уйму времени )))