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

  Рет қаралды 130,582

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

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

Күн бұрын

Python-разработчик от Хекслет - lnnk.in/jddo
Реальный пример из жизни, как я работал с Excel - файлом при помощи языка программирования Python.
Задача - обработать XLSX-файл Бланка заказа и составить новую таблицу соответствия подкатегорий товара и принадлежащих им артикулов.
Подробно объясняю процесс создания программы.
В процессе использую библиотеку openpyxl, операции со строками, типы данных dictionary, list, операции со строками, сортировку словаря по ключам и многое другое.
⭐️ Мой подробный "Роадмап деда-программиста. Python бэкенд." со скидкой 20% : stepik.org/a/133721/pay?promo...
(Срок действия ссылки - до 15.05.24)
Чат Дедов-программистов в телеграме: t.me/oldcodersclub
Наш очень крутой GitHub дедов-программистов с кучей полезной информации для начинающих - роадмапы, с чего начать и куда развиваться : github.com/OldCodersClub
Финальный код и excel файл: github.com/break-and-enter/ol...
00:00 Intro
00:15 Задача
01:50 Библиотека openpyxl
03:23 Архитектура программы
03:53 Цикл for
04:14 Смотрим декларацию методов в PyCharm
05:25 Метод cell из openpyxl
06:13 Полезная реклама
08:00 Продолжаем
09:29 Словарь
11:54 Список как значение словаря
13:09 Красивый вывод: pprint
13:53 Запись в файл
14:54 Операции со строками
16:47 Сортировка словаря по ключам
17:55 Финальный код

Пікірлер: 507
@user-bp4ks7bi7h
@user-bp4ks7bi7h Жыл бұрын
Спасибо автору! Описан нормальный путь создания скрипта от постановки задачи до практической реализации в конкретной области. Использование простых конструкций позволяет понять происходящее для начального уровня, кому и предназначены эти видео. Замечания в комментариях по улучшению предложенного кода расширяют кругозор. Их авторам также спасибо!
@progway8574
@progway8574 Жыл бұрын
В очередной раз убеждаюсь, что реальные задачи намного интереснее и эффективнее. Нужно как-нибудь попробовать. Спасибо большое за видео!
@alvares2729
@alvares2729 Жыл бұрын
Удачи в Новом году! Буду с нетерпением ждать новые видосы🤗
@i.e.2650
@i.e.2650 Жыл бұрын
Спасибо за клевую практику и прикладное применение всех этих циклов, словарей и джоинов!!!!
@user-me6gu6nh2w
@user-me6gu6nh2w 10 ай бұрын
У меня ест многолетний опыт анализа данных в Excel. И эту задачу в Excel можно выполнить примерно за полторы минуты. Может 3 минуты. Загружаем всю таблицу в модель данных (Power Pivot). Создаём одну меру на DAX CONCATENATE. После чего выводу ее в сводную таблицу. Все. Выглядит гораздо быстрее чем способ на видео. А касаемо программирования... Я только в прошлом месяце начал учить Python для анализа данных. Знаю совсем немного. Но я бы в данном случае использовал бы Pandas. Подключился к таблице с переводом ее в DataFrame. Оставил бы только две нужные колонки. После чего загуглил (или чатгпт) как в Пандасе делать конкатинацию, так как такого ещё не учил. Мне кажется это будет проще и быстрее чем выщитывать номера колонок. А вдруг в следующей выгрузке добавиться колонка с новой информацией? Тогда номер колонки измениться и весь алгоритм пойдет лесом. А если привязаться к названию, то куда бы колонка не переехала, то ничего не поломается. Хотя может вмешаться человеческий фактор и измениться название колонки в таблице, но предусмотреть все невозможно.
@user-zo7gq5sk9k
@user-zo7gq5sk9k Жыл бұрын
Спасибо! Хороший пример. Решал недавно задачу с курса по работе с файлами, тут практически то же самое)
@user-fz7jx9uv9y
@user-fz7jx9uv9y Жыл бұрын
Нет необходимость так сортировать словарь (преобразования сортированного списка кортежей обратно в словарь) достаточно написать for key, value in sorted(subcategories_dict.items()): т.к. по сути словари это неупорядоченные последовательности. То что в последних версиях python перебор элементов словаря идёт по порядку их занесения в словарь, не гарантирует аналогичное поведение в более ранних версиях python
@oldcoders
@oldcoders Жыл бұрын
О, круто, спасибо!!
@eugenedukatta9355
@eugenedukatta9355 Жыл бұрын
Меня сортировка словаря тоже слегка насторожила. Погуглил - оказывается начиная с версии Питон 3.6 словарь сохраняет порядок элементов в порядке их добавления. В более ранних версиях такого нет.
@maths781
@maths781 Жыл бұрын
Спасибо большое за ролик. Интересно слушать взрослых программистов.
@ExcelStore
@ExcelStore Жыл бұрын
Материал изложен в доступной для понимания форме. Спасибо.
@Juvelir97
@Juvelir97 Жыл бұрын
Очень полезно и в отличном темпе для начинающе-продолжающих! Спасибо! Подписка однозначно
@axel-cjuh5426
@axel-cjuh5426 Жыл бұрын
Объяснение, подача, реальные задачи, вы просто популяризатор программирования!
@user-qb5wo7yv7m
@user-qb5wo7yv7m Жыл бұрын
Спасибо большое, мне как новичку и самоучке, тяжело найти наглядный пример. А тут прям то что нужно! Понимаю что возможно не оптимальное решение, но сам процесс поиска ответов, очень помог мне. Ещё раз спасибо, для меня очень полезная информация! Судя по коментариям и я дед)
@QWERTY-om5fg
@QWERTY-om5fg Жыл бұрын
Дед, ты лучший! Создаешь топовый контент! Спасибо!
@abzalbotbayev
@abzalbotbayev Жыл бұрын
Это вообще законно, объяснять так понятно и наглядно? )) Спасибо!
@oldcoders
@oldcoders Жыл бұрын
😆😆😆
@Akkaunt__Yerjan
@Akkaunt__Yerjan Жыл бұрын
Вы бы skillbox посмотрели как там наглядно про основы взлома показывали)).
@sergey_ra
@sergey_ra Жыл бұрын
​@@Akkaunt__Yerjan есть на ютубе?) Подскажите, если да
@sergey_ra
@sergey_ra Жыл бұрын
​​@@Akkaunt__Yerjan помню вначале нулевых изучал фак по фриинету, будучи студентом безденежным, да ещё и музыкантом, вот у меня к пела голова😂 Научился инет добывать, да ещё и не обворовывая людей при этом :)) Данные для авторизации тырил конечно, проникая в компы через гостевой доступ для авторизации. И оказалось, что у прова мультилогины были у всех😅 РОЛ вроде это был😂
@user-fs5mx9ew8d
@user-fs5mx9ew8d Жыл бұрын
Хорошее видео с ходом рассуждения и реальный код👍
@user-mn7nf4bc2f
@user-mn7nf4bc2f Жыл бұрын
Видео еще не смотрела, думаю, там все как всегда очень хорошо, но елочка на батарее очень милая, спасибо за настроение ☺️🧡
@oldcoders
@oldcoders Жыл бұрын
☺️🎄
@pavelzaytsev_moscow
@pavelzaytsev_moscow 4 ай бұрын
Спасибо! Отличный информативный контент. Удачи в Новом году и новых идей в развитии канала🎉
@850scout
@850scout Жыл бұрын
вы такой молодец.поддерживаете своими роликами.Спасибо!
@user-mw7dz4fg7f
@user-mw7dz4fg7f Жыл бұрын
Мне вообще видео в тему! Как раз думал исполнить что то подобное с данными ЕХ таблицы. Спасибо!
@johnbelyaev4031
@johnbelyaev4031 7 ай бұрын
Очень полезное видео !!!Как раз подобную программу реализую как начинающий программист, свой проект)Спасибо вам за труды. Подписка однозначно и рекомендации друзьям и знакомым!
@goviktor
@goviktor Жыл бұрын
Очень хорошее и информативное видео. Спасибо - шикарная работа !!!!!
@rrroll
@rrroll Жыл бұрын
хороший формат, все понятно, спасибо & так держать!
@yuriyruchev9218
@yuriyruchev9218 9 ай бұрын
Спасибо! Продолжайте дальше)
@volhv12
@volhv12 Жыл бұрын
Ну очень круто) Доходчиво и увлекательно)
@arudskyy
@arudskyy Жыл бұрын
Я также ловлю кайф от работы с python. Был тоже опыт работы с Excel: однажды получилась очень удачный и стройный скрипт - на штатный разработчик Excel/VB начал у меня выяснять где же основной модуль реализации и не поверил, что этот скрипт и был всей рабочей программой
@andredru4278
@andredru4278 Жыл бұрын
Спасибо. Очень понятные и наглядные комментарии.
@BROnik
@BROnik Жыл бұрын
Очень круто и полезно! з.ы.: Все еще жду 3ю часть по Джанго 🙃 С Новым Годом!
@oldcoders
@oldcoders Жыл бұрын
Будет, будет.. собираюсь с силами .. 😀
@user-fr2cy6ng6z
@user-fr2cy6ng6z Жыл бұрын
@@oldcoders Дай Вам всевышний сил немеренно для благого дела! А мы очень ждем!!!
@mrrappbit
@mrrappbit Жыл бұрын
Спасибо! Не пробовал работать с pprint и было интересно про чтение данных из ексель, применю в работе и автоматизирую процессы
@siralex8331
@siralex8331 Жыл бұрын
ура, новый видос вышел!
@Cotucini
@Cotucini Жыл бұрын
И снова отличное видео! Спасибо
@user-ce3me9oc7r
@user-ce3me9oc7r Жыл бұрын
Давно шукав схоже відео для роботи з хl, шикарне пояснення )))
@vernnms78
@vernnms78 Жыл бұрын
Очень познавательно! Не программирую, но с удовольствием посмотрел и вник в код.
@vasilejosu3431
@vasilejosu3431 3 ай бұрын
Огромное спасибо! На работе часто используют Excel, и Python может очень помочь. Было бы ещё круче в конце видео записать данные в новый xlsx файл через цикл.
@user-db7kz5un3x
@user-db7kz5un3x Жыл бұрын
Круто! Спасибо! С большим удовольствием посмотрел!
@EKZOTIKSKLYAR
@EKZOTIKSKLYAR 9 ай бұрын
Спасибо! 👍
@user-qn6pq1dk5h
@user-qn6pq1dk5h Жыл бұрын
Тоже делал подобную штуку для работы. Я это назвал прокинутым ВПР. Моя первая полезная программа))😊
@maxsam5741
@maxsam5741 Жыл бұрын
Спасибо за труд!
@evgenyjagushinsky6695
@evgenyjagushinsky6695 Жыл бұрын
Отлично сказано!!! Раз освоил свой язык программирования, так и используй его!
@Abramov_Andrey
@Abramov_Andrey 11 ай бұрын
Супер! Если еще будут примеры работы питона с экселем, по возможности, пжт, выкладывайте. Очень интересно) Спасибо!
@oldcoders
@oldcoders 11 ай бұрын
👌 Есть еще одно видео на канале у меня, посмотрите, pandas + excel
@user-rb3dk6ny3p
@user-rb3dk6ny3p Жыл бұрын
Спасибо за видео! Очень интересно
@sergiusz8620
@sergiusz8620 Жыл бұрын
Спасибо, твои видео мотивируют
@mkqwm
@mkqwm Жыл бұрын
спасибо дед за интересные ролики
@Fly2nowr
@Fly2nowr Жыл бұрын
Класс 🙌 просто и лаконично!
@user-pb2pu2tq1s
@user-pb2pu2tq1s Жыл бұрын
Было бы замечательно и профессионально, после выхода комментариев, создать следующее видео, автор решит ту же задачу, но учтёт полезные комментарии, и немного усложнить задачу. К примеру что-то запишет в один файл с таким именем, а что-то в другой файл с другим расширением в другом виде. Методов много, хочется примеры на все методы. Т.е. к примеру, четыре видео, и в них раскрыты все методы работы со строками на простой реальной программе! Это лучший канал для самообучения! В остальных видео много просто примеров, а здесь реальные программы! Спасибо за видео! Успехов каналу и ведущему! Жду новые видео по всем разделам Python, что бы можно было освоить их и вырасти от джуна до мидла!
@oldcoders
@oldcoders Жыл бұрын
Спасибо! Я тоже думаю о том, чтобы изменить программы с учётом советов, данных в комментариях, и записать видео об этом .
@kostashvetsov9258
@kostashvetsov9258 Жыл бұрын
@@oldcoders 🤝🤝🤝
@MrSuperfantom
@MrSuperfantom Жыл бұрын
Можно усовершенствовать программу, если добавить файл базы данных MySQL и в него писать необходимые значения и сохранять, переносить таким образом вместо файла ini. Ну и потом написать графический интерфейс, можно на Kivy для мультиплатформенности.
@oldcoders
@oldcoders Жыл бұрын
Дело в том что мне такой вариант совершенно не нужен. Ни графический интерфейс ни БД. У меня этот скрипт встроится в мое большое веб-приложение. И я там использую ini файлы чтобы не хардкодить, не записывать в код то, что может меняться в зависимости от разных ситуаций. Чтобы с приходом нового сезона например не переписывать основной код приложения. Просто обновил ini файл, изменил если надо руками, добавил что надо - и готово. Приложение работает с новым сезоном . Без залезания в код.
@abracadabra5491
@abracadabra5491 8 ай бұрын
@@oldcoders а почему ini файлы, а не тот же json?
@user-ul4se4ct7d
@user-ul4se4ct7d Жыл бұрын
Спасибо за информацию!
@user-ts9fd3cy9d
@user-ts9fd3cy9d Жыл бұрын
Очень круто!
@sergiimatiavin3573
@sergiimatiavin3573 Жыл бұрын
У Excel для решения подобной задачи без программирования есть собственный мощный инструмент - сводная таблица. Но пример полезный, спасибо.
@oldcoders
@oldcoders Жыл бұрын
👌 но у нас цель - программирование
@ndt_master
@ndt_master Жыл бұрын
с удовольствием посмотрел видео и почитал комментарии
@italia9279
@italia9279 Жыл бұрын
Спасибо за видео! Было позновательно)
@user-kc2xm1gu2n
@user-kc2xm1gu2n 11 ай бұрын
Шикарно!
@a.osethkin55
@a.osethkin55 Жыл бұрын
Спасибо большое. Очень интересно
@user-mq6vh6du9s
@user-mq6vh6du9s Жыл бұрын
привет. Здорово, что показываешь реальные задачи с реальными алгоритмами) Продолжай в том же духе). По коду хотелось бы добавить, что можно избавиться от конструкции if-else стандартным методом dict.setdefault(key, list()).append(value) - т.е. если значение ключа есть, то он будет добавлен в список, а если такого ключа нету, тогда будет создан такой ключ в словаре и в него уже добавлен value. Надеюсь понятно написал))
@oldcoders
@oldcoders Жыл бұрын
О, круто! Спасибо большое!!
@a.d.8390
@a.d.8390 Жыл бұрын
@@oldcoders ещё удобно использовать defaultdict() стандартного модуля collections. Особенно если нужно получить вложенность в словаре наподобие json.
@Gr3gnov
@Gr3gnov Жыл бұрын
Можно просто subcategories_dict = defaultdict(list) Таким образом можно указать, что в словаре в качестве значений будут листы. И можно смело делать subcategories_dict['любой ключ'].append(sku)
@oldcoders
@oldcoders Жыл бұрын
Класс!
@mr.wrangler
@mr.wrangler Жыл бұрын
Очень подробно , спасибо
@qwaqa8
@qwaqa8 Жыл бұрын
Очень информативно и интересно!
@alisherxakimov762
@alisherxakimov762 Жыл бұрын
Всё чётко ясно обьяснили спс огромное
@GlExcel
@GlExcel Жыл бұрын
в 8:42 - чтобы посчитать кол-во столбцов - достаточно их выделить и посмотреть на "подсказку" которая будет появляться правее курсора. Подсказка вида: 1048576R x 12C
@user-qh5fr3yo1w
@user-qh5fr3yo1w Ай бұрын
Ну здорово. И Питон и Эксель изучаю на Степик. Сейчас посмотрю Хекслет.
@drevo100
@drevo100 Жыл бұрын
Спасибо, очень интересно. Возможно ли сделать подобный видео-разбор с данными, которые бы писались в БД (желательно постгрес). Если бы еще на арендованном серваке было бы вдвойне полезно.
@oldcoders
@oldcoders Жыл бұрын
Я с БД только в Джанго работал, больше никак. В ролике про «Джанго часть 2» про это рассказывал. Но там не SQL, там ORM.
@user-xq3qy4qv5z
@user-xq3qy4qv5z Жыл бұрын
У вас преподавательский талант
@nikprilutskiy7064
@nikprilutskiy7064 Жыл бұрын
Привет! Спасибо за видео! По поводу наполнения словаря подкину еще один вариант. Можно воспользоваться методом get(), что бы избежать конструкции if-else: subcategories_dict[subcategory] = subcategories_dict.get(subcategory, [ ]) + [sku] т.е. перед тем как записать значение ключа мы проверяем что у нас там уже есть по этому ключу через get(), если ничего нет то применяется второй аргумент у get() что положить туда, если ничего не нашлось. В случае, если найдется, то мы к списку просто прибавим еще одно значение.
@oldcoders
@oldcoders Жыл бұрын
Спасибо!! Возьму на заметку!
@yawneed
@yawneed Жыл бұрын
Для этого есть defaultdict чтобы такие кастыли не писать
@user-pk7ik7ho9q
@user-pk7ik7ho9q Жыл бұрын
Спасибо за ответ. Когда я писал код попримеру в else выдавало ошибку, sku было стрингом, что не позволяло добавлять в него через аппенд. Твоё решение все исправило!
@web-writer4769
@web-writer4769 Жыл бұрын
чувак, спасибо! очень клёво!
@mister_123
@mister_123 6 ай бұрын
Спасибо! отличное видео.
@yura9885
@yura9885 Жыл бұрын
классный канал! респект тебе)
@MrTubeer
@MrTubeer Жыл бұрын
Я люблю программирование. Но дальше теории никак не двинусь и по этому получаю удовольствие от просмотра таких роликов
@oldcoders
@oldcoders Жыл бұрын
Поставьте себе задачу, очень простую. И решите ее. Если совсем нет задач - решайте их на codewars. Какой смысл знать теорию и не использовать ее?
@Gimli_Dwarf
@Gimli_Dwarf Жыл бұрын
Берешь задачу - сортировка и подготовка данных из таблицы в 10000 строк, чтобы провести расчет и вывести результаты в word. Сначала пробуете на VBA, понимаете, что это полный изврат и переписываете на linq C#.... Profit.
@edrdr
@edrdr Жыл бұрын
Попробуй заняться микроконтроллерами. Esp32 + micropython. Дёшево и сердито, вдруг в тебе спит гений
@no101vmv
@no101vmv Жыл бұрын
Теория нужна что бы практика лучше давалась. Но основное все же практика а не теория на старте карьеры особенно
@konanicopol7451
@konanicopol7451 7 ай бұрын
Офигенно, я сам финансист и начал изучать программирование. Не думал что python можно использовать в excel
@user-je1tq2nu1o
@user-je1tq2nu1o 5 ай бұрын
Спасибо Большое
@user-zl5sp9yh1n
@user-zl5sp9yh1n Жыл бұрын
Добавление в список по ключу хорошо делать через dict.setdefault('key', []).append('item')
@calionigor1184
@calionigor1184 Жыл бұрын
Спасибо! Подписка.
@user-os1xg1rh4c
@user-os1xg1rh4c Жыл бұрын
Деды вперед!
@oldcoders
@oldcoders Жыл бұрын
Воистину вперед!
@Time2paw
@Time2paw 10 ай бұрын
Дед, спасибо. Всё как по учебнику - если код нельзя прочитать как предложение, этот код нужно переосмыслить.
@no101vmv
@no101vmv Жыл бұрын
1. if else обычно стараются сократить. Я бы сделал "в случае если в словаре нет ключа" - создад запись с ключем где значение будет пустой массив. А потом аппендить туда значения без елсе. Мне так комфортнее) Не знаю кому как. Ну и еще одно замечание. А самое главное замечание кеоторое мне бросилось в глаза - сортировка не верная. Потому что саб категория должна сортироваться 1.1, 1.2, 1.3, ...., 1.10 а не 1.1, 1.10, 1.2. Для этого когда складываем в словарь можно сразу сделать category_dic и subcategory_dic и во втором писать только второе число подкатегории. И сортировать его как число а не как строку. В целом такая структура будет удобнее для дальнейшего использования.
@secretadmirateur5979
@secretadmirateur5979 Жыл бұрын
Вот бы видео на этом канале появлялись чаще!
@oldcoders
@oldcoders Жыл бұрын
На этой неделе выйдет новое. Из этой же серии «пишу реальную программу»
@alkha7144
@alkha7144 Жыл бұрын
В поддержку.
@maxnorge
@maxnorge Жыл бұрын
Библиотека Pandas имеет хороший функционал по таблицам, выборкам, группировкам, вводу/выводу файлов и т.д. Спасибо за видео!
@oldcoders
@oldcoders Жыл бұрын
Да, я ее использую. В этом видео нет.
@andreyflash6001
@andreyflash6001 Жыл бұрын
Тоже про Pandas подумал. Но в исходном excel файле (в названии столбцов таблицы) заметил объединённые ячейки. У меня Pandas такое читать отказывается. Есть вообще способ открыть excel файл с объединёнными ячейками через Pandas?
@user-sl3qw9ef7z
@user-sl3qw9ef7z Жыл бұрын
Отлично!
@pavelpeklov3825
@pavelpeklov3825 2 ай бұрын
Спасибо, вполне полезно
@AnuarAitkazin
@AnuarAitkazin Жыл бұрын
Ждем 3 часть про Python Django
@user-pg8ry1tm3t
@user-pg8ry1tm3t 10 ай бұрын
Супер!
@RiantHoff
@RiantHoff Жыл бұрын
Словарь по итогу отсортирован по ключу, как строке (1.10, 1.11 идут впереди 1.2), а нужно как по числу. В программе не хватает вот этого последнего штришка. :)
@oldcoders
@oldcoders Жыл бұрын
Просто мне не нужно было это. Это задача не учебная а реальная. Такой сортировки более чем достаточно, времени тратить на ненужную «досортировку» - смысла нет. И видео усложнять - тем более.
@karkozov
@karkozov Жыл бұрын
Я бы словарь сортировал иначе, через генератор, как кто-то предложил If/else при записи можно заменить конструкцией dict[key] = dict.get(key, []) + [value] Если нет значения по ключу, он в него записывает пустой список и конкатенирует со списком значения Либо dict.setdefault(key, []).append(value) И при создании результирующей строки использовал f-string Получилось бы что-то типа String_write = f”{key} = {‘, ‘.join(value)} ” - здесь сразу список значений распаковывается в строку с разделителями) вообще познав однажды f-строки невозможно их разлюбить
@IvanIvanov-rp6og
@IvanIvanov-rp6og Жыл бұрын
Можно вместо списка для артикулов использовать множество, тогда в строке артикулов не будет повторений dict.setdefault(key, set()).add(value) А при выводе использовать f-строку вместо строки с "+" и вставить sorted() в join, потому что множество выдает свои элементы в случайном порядке string_values = ', '.join(sorted(value)) string_to_write = f'{key} = {string_values} '
@oldcoders
@oldcoders Жыл бұрын
👍👍 спасибо
@S_putnik
@S_putnik Жыл бұрын
А если через метод get?
@IvanIvanov-rp6og
@IvanIvanov-rp6og Жыл бұрын
@@S_putnik Через метод get мне нравится больше
@nuklotron7465
@nuklotron7465 Жыл бұрын
к тому же множества работают быстрее списков)
@user-ok2oo7pt2r
@user-ok2oo7pt2r 6 ай бұрын
​@@IvanIvanov-rp6ogкак помню, если ключа нет то выводит ошибку
@yabanciyim
@yabanciyim Жыл бұрын
Спасибо за интересное видео. Но если говорить о том какой тип данных идеален для решения данной задачи - то это конечно же классическая задача для defaultdict - словаря со значением по умолчанию)..
@oldcoders
@oldcoders Жыл бұрын
Да, многие написали про этот метод, спасибо!!
@user-es4kn2gm9v
@user-es4kn2gm9v Жыл бұрын
Спасибо Вам 🇧🇾🇧🇾🇧🇾🇧🇾
@dnk1761
@dnk1761 Жыл бұрын
Привет! Спасибо за видео! Классная идея с обучением на реальной задаче. Немного душных комментов по самому видосу - слишком много внимания берут на себя перебивки с музыкой, я бы музыку или подрезал или вообще убрал. Если добавить в начале что-то типа оглавления - так будет смотреть еще интереснее. Можно еще рассказать сколько времени заняла работа и сколько за это могут заплатить) спасибо за видос! Афтор пеши исчо
@oldcoders
@oldcoders Жыл бұрын
Есть же оглавление - разделы под видео. За такую программу никто платить не будет, это минимальный базовый уровень владения языком. Времени заняло минут 30. За советы спасибо!
@paladinalik
@paladinalik Жыл бұрын
Переменную string_towrite я бы записал через форматирование: f"{key}={string_values} "
@Teraed
@Teraed 11 ай бұрын
Спасибо интересно. Один вопрос если у нас в исходном файле будет за двоенная строка (Артикул + Подгруппа товара), то и в финале два одинаковых артикула в подгруппе товара выйдет? Если да, то как дописать проверку, и может добавить вывод дублей в отдельный файл для правки исходника. А то ошибка в одной цифре артикула и песчаная толстовка идет как черная.
@user-ys3si9fc6b
@user-ys3si9fc6b Жыл бұрын
Я бы воспользовался defaultdict из модуля collections тем самым объявив бы values словаря с типом list
@vvvarvfx
@vvvarvfx Жыл бұрын
Используйте f-строки, а не конкатенацию в чистом виде,f-строки прекрасны! Спасибо за ролик!
@harddi7316
@harddi7316 Жыл бұрын
Жаль нельзя поставить сразу два, а лучше три лайка ) пробовал с ноги сесть за написание скриптов для экселя 3 месяца назад на работке, потратил прилично времени и ничего не понял, все не работало и я забросил... сейчас после бесплатных курсов на степике (парни там реально наваливают знаний, если нужна ссыль маякните) все предельно понятно в этом видео, надо потихонечку разбираться со сторонними библиотечками.
@Bop1ezh
@Bop1ezh Жыл бұрын
Познавательно и круто! Спасибо за видео и разъяснения. Однако, я хотел бы уточнить пару моментов. 1-й - кроме макросов в Excel есть прекрасный ETL в виде PowerQuery, где тоже самое можно сделать при помощи интерфейса и нескольких кликов мышки. 2-ой - на 17:50 видно, что сортировка не идеальна, т.к. после. п.3.1. (20 строчка в IDE) идёт п.3.10. (21 строчка в IDE), а ещё ниже п.3.2. (26 стока в IDE). Подскажите, пожалуйста, как это скорректировать? Спасибо!
@oldcoders
@oldcoders Жыл бұрын
Да, можете почитать в комментариях, об этом уже рассуждали. Чуть более сложную сортировку пришлось бы делать. Например отделять номер от названия подкатегории, переводить его в тип float , сортировать его и т.д. Мне это было не нужно, такой первичной сортировки было достаточно.
@mishamishin5239
@mishamishin5239 Жыл бұрын
Спасибо за видео, очень нравится этот формат! Не совсем понял момент с sku: вы ж не объявляли эту переменную как list, как это работает?
@oldcoders
@oldcoders Жыл бұрын
А sku это и не лист никакой. Лист это значение словаря, в котором элементами являются sku. subcategories_dict[subcategory]=[sku] Вот здесь список и объявляется.
@mishamishin5239
@mishamishin5239 Жыл бұрын
@@oldcoders Понял, спасибо большое за ответ!
@Standa015
@Standa015 Жыл бұрын
Бесконечно можно смотреть на три вещи: как огонь горит, вода течёт и профессионал работает. Так что посмотрю ка ещё раз. Это было красиво, я кайфонул. А вот использование огрызка удивило :)
@oldcoders
@oldcoders Жыл бұрын
Ой я не профессионал точно, я не работаю программистом. Я любитель 😀 Мак - потрясающий комп, я ему не нарадуюсь уже много лет. И для программирования очень хорошо подходит.
@Standa015
@Standa015 Жыл бұрын
Всё программисты которых знаю я работают в основном а Linux. Сам хотел обзавестись Qubes OS, ну или Tails на ноуте использовать:)
@oldcoders
@oldcoders Жыл бұрын
Для повседневной жизни линукс менее удобен чем мак. Линукс хорош для сервера, куда свои приложения выкладывать будете. И макОС она тоже unix подобная система, считайте тот же линукс.
@denatle
@denatle Жыл бұрын
Кстати о исходниках и "если хочется, то можно здесь всё сломать". Надо бы рассказать людям про virtual environment'ы. Меньше "но на моём компе работает" будем слышать)
@user-jw9fx1xk5s
@user-jw9fx1xk5s 7 ай бұрын
Пришлось перейти с vba на python в связи с задачей где vba уже не тянет: надо было обрабатывать и рассчитывать с высокой точностью по данным в excel файлах размером порядка 300-500 mb (500 тыс. строк и 150 столбцов) за 10 лет (в результате сформирован dataset на 15 gb). Столкнулся с проблемой библиотеки openpyxl - непредсказуемая обработка чисел: то например вместо исходного числа 0,3 выдает 0,2999999, или вместо -0,002 -2e-3. Пришлось оборачивать дополнительными функциями. Может есть какие-нибудь опции чтобы подавить такую обработку?
@oldcoders
@oldcoders 7 ай бұрын
docs-python.ru/tutorial/operatsii-chislami-python/problemy-chisel-plavajuschej-zapjatoj/ здесь не дан ответ вам? А вообще с такими большими объемами данных вам уже лучше смотреть на Базы Данных. Они работают быстро, четко, им хоть миллионы строк нипочем. Один раз загнать ваш датасет в БД и уже с БД работать.
@tsvjatoslav
@tsvjatoslav 7 ай бұрын
Используй библиотеку pandas
@Ollwagos
@Ollwagos 10 ай бұрын
Уже дохрена пересмотрел всяких видосов!!! Ну мля нереально ето виучить! Пока учишь одно забиваешь второе. ЖЕСТЬ
@oldcoders
@oldcoders 10 ай бұрын
Да, кажется что нереально. Сам в такое состояние впадал много раз. Массив информации просто чудовищно огромный. Но не надо его учить. Надо в нем РАЗБИРАТЬСЯ и писать МНОГО программ, используя эти знания. Тогда в голове останется память о том что ты это делал, и когда надо будет - ты это вспомнишь. Я вообще ничего не помню, спроси меня «как написать то-то и то-то». Я отвечу «точно не помню, но это делается примерно так, щас я быстренько загуглю - да, вот, это делается так». И это нормально. Программисты не помнят весь синтаксис всех языков и фреймворков. Но они помнят что это они уже делали /читали когда то и знают где в документации искать про это.
@oldcoders
@oldcoders 10 ай бұрын
Единственное - если пойдете на собеседование - там надо кое что наизусть знать. Но к собеседованию и надо готовиться отдельно. Учить и даже зубрить кое что.
@JM-fx4le
@JM-fx4le 9 ай бұрын
Super
@milask3531
@milask3531 Жыл бұрын
Молодец, интернсно
@vasiliqkryt8808
@vasiliqkryt8808 2 ай бұрын
когда записываешь данные в словарь удобнее использовать метод словаря get
@DenisTrebushnikov
@DenisTrebushnikov 10 ай бұрын
всё отлично, объяснение и пример, но: 1) это скрипт, а не программа, т.к. используется императивный подход, впрочем, это уже вопрос семантики. 2) задача не выполнена, т.к. условие "и формирование нового .xlsx файла" в рамках видео не выполнено PyCharm (Win) - ctrl+b (и тоже для выхода обратно) для pop-up подсказки - достаточно ctrl+q (второе нажатие открывает сбоку вкладку Документации) - прыгать в исходник бывает излишне; а данная комбинация также подсказывает ваши функции и классы (и даже вашу документацию, если она присутствует и создана по правилам)
@prostochel7049
@prostochel7049 4 ай бұрын
Офигенный проект и автор, только я чуть не ослеп когда ты открыл ide с белой темой. Предупреждать надо)
@oldcoders
@oldcoders 4 ай бұрын
😆 белая тема это олдскул, как раз дедовская
Пишу реальную программу. Парсинг текстового файла. Python + Pandas + Excel.
23:57
Понять Django. Пишем "Hello world". Объясняю просто и с картинками.
25:49
Клуб дедов-программистов
Рет қаралды 172 М.
маленький брат прыгает в бассейн
00:15
GL Show Russian
Рет қаралды 1,7 МЛН
Stupid man 👨😂
00:20
Nadir Show
Рет қаралды 14 МЛН
原来小女孩在求救#海贼王  #路飞
00:32
路飞与唐舞桐
Рет қаралды 25 МЛН
小路飞第二集:小路飞很听话#海贼王  #路飞
00:48
路飞与唐舞桐
Рет қаралды 13 МЛН
Стать программистом в 40+? Мотивирующее видео.
18:12
Клуб дедов-программистов
Рет қаралды 76 М.
ПАРСИНГ КОМПАНИЙ В 2GIS | Как написать парсер на selenium (Python)
9:02
Артём Ипатов - Python на практике
Рет қаралды 3,7 М.
Решаю простые задачки на Python с сайта Codewars - ЧАСТЬ 2.
22:16
Клуб дедов-программистов
Рет қаралды 75 М.
Уроки Python / Работа с файлами Excel считываем данные и формулы
12:45
Изучаем мир ИТ / Олег Шпагин / Программирование
Рет қаралды 65 М.
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
Ваше первое веб-приложение. Каким оно должно быть.
19:49
Клуб дедов-программистов
Рет қаралды 8 М.
Introducing Python in Excel 😱
19:01
Leila Gharani
Рет қаралды 1,4 МЛН
С Какой Высоты Разобьётся NOKIA3310 ?!😳
0:43
Koshyl_Live
Рет қаралды 2,8 МЛН
Creepy Samsung Alarm cannot be turned off 😱🤣 #shorts
0:14
Adani Family
Рет қаралды 735 М.
phone charge game #viral #tranding #new #reels
0:18
YODHA GAMING RAAS
Рет қаралды 10 МЛН
Клавиатура vs геймпад vs руль
0:47
Balance
Рет қаралды 799 М.
Наушники Ой🤣
0:26
Listen_pods
Рет қаралды 192 М.