Почему я люблю Python? Это простой в освоении язык программирования для начинающих по другой причине: большое количество сторонних библиотек, доступных «из коробки», и 230 000 пользовательских пакетов делают Python по-настоящему мощным и популярным.
В этой статье я выбрал 15 самых полезных программных пакетов, описав их функции и особенности.
1. Dash
Dash — это относительно новый пакет, который идеально подходит для создания приложений для визуализации данных на чистом Python, поэтому он особенно подходит для всех, кто работает с данными. Dash — это смесь Flask, Plotly.js и React.js.
2. Pygame
Pygame — это декоратор Python для мультимедийной библиотеки SDL SDL (Simple DirectMedia Layer) — это кроссплатформенная библиотека разработки, предназначенная для предоставления низкоуровневого интерфейса для:
-
аудио
-
клавиатура
-
мышь
-
джойстик
-
Графическое оборудование на основе OpenGL и Direct3D
Pygame легко переносится и работает практически на всех платформах и операционных системах. Хотя у нее есть полноценный игровой движок, вы также можете использовать эту библиотеку для воспроизведения файлов MP3 непосредственно из скриптов Python.
3. Pillow
Подушка разработана специально для работы с изображениями, и вы можете использовать библиотеку для создания эскизов, преобразования между форматами файлов, поворота, применения фильтров, отображения изображений и многого другого. Это идеально, если вам нужно выполнять пакетные операции со многими изображениями.
Для быстрого ознакомления с ним см. следующий пример кода (загрузка и рендеринг изображения):
4. Colorama
Colorama позволяет использовать цвета в терминале, что отлично подходит для сценариев Python, а документация короткая и интересная, ее можно найти на странице Colorama PyPI.
5. JmesPath
Работать с JSON в Python очень просто, потому что JSON очень хорошо отображается в словарях Python. Кроме того, Python поставляется с собственной превосходной библиотекой json для анализа и создания JSON. Для меня это одна из его лучших характеристик. Если мне нужно использовать JSON, я мог бы рассмотреть возможность использования Python.
JMESPath упрощает работу с JSON в Python, позволяя явно указывать, как извлекать элементы из документа JSON. Вот несколько основных примеров, чтобы дать вам представление о том, что он делает:
6. Requests
Запросы основаны на самой загружаемой в мире библиотеке Python, urllib3, которая делает веб-запросы невероятно простыми, мощными и универсальными.
В следующем примере кода показано, насколько просто использовать запросы.
Запросы могут выполнять любую сложную работу, о которой вы только можете подумать, например:
-
Сертификация
-
Использовать файлы cookie
-
Выполните POST, PUT, DELETE и т. д.
-
Использовать пользовательский сертификат
-
Использовать сеанс сеанса
-
использовать прокси
7. Simplejson
Что не так с нативным модулем json в Python? нет! На самом деле json в Python — это simplejson. Это означает, что Python берет версию simplejson и включает ее в каждый дистрибутив. Но использование simplejson имеет некоторые преимущества:
-
Он работает с большим количеством версий Python.
-
Он обновляется чаще, чем версия, поставляемая с Python.
-
У него есть (необязательные) части, написанные на C, поэтому он очень быстрый.
Из-за этих фактов в сценариях, использующих JSON, вы часто будете видеть следующее:
Я бы просто использовал json по умолчанию, если вам конкретно не нужно:
-
скорость
-
что-то не в стандартной библиотеке
Simplejson намного быстрее, чем json, потому что он реализует некоторые ключевые части на C. Если вы не имеете дело с миллионами файлов JSON, вам не будет интересна такая скорость.
8. Emoji
Библиотеки эмодзи очень интересны, но не всем нравятся пакеты эмодзи, а пакеты эмодзи очень полезны при анализе перспективных медиаданных.
Вот простой пример кода:
9. Chardet
Вы можете использовать модуль chardet для определения набора символов файла или потока данных. Это полезно, например, при анализе больших объемов случайного текста. Однако его также можно использовать при работе с удаленно загруженными данными, когда вы не знаете, что такое кодировка.
10. Python-dateutil
Модуль python-dateutil предоставляет мощные расширения для стандартного модуля datetime. По моему опыту, обычная функциональность даты и времени Python заканчивается и появляется python-dateutil.
Вы можете делать много интересных вещей с этой библиотекой. Я ограничу эти примеры теми, которые я считаю особенно полезными: Нечеткий анализ дат в файлах журналов, таких как:
См. полную документацию для дополнительных функций, таких как:
-
Вычислить относительную дельту (следующий месяц, следующий год, следующий понедельник, последняя неделя месяца и т. д.) и относительную дельту между двумя заданными объектами даты.
-
Используйте расширенный набор спецификаций iCalendar для расчета дат на основе повторяющихся правил.
-
Реализация часового пояса (tzinfo) для файлов tzfile (/etc/localtime, /usr/share/zoneinfo и т. д.), строк среды TZ (все известные форматы), файлов формата iCalendar, заданных диапазонов (с помощью относительных приращений), часовой пояс локального компьютера, часовой пояс с фиксированным смещением, часовой пояс UTC и часовой пояс на основе реестра Windows.
-
Внутренняя актуальная информация о мировых часовых поясах на основе базы данных Olsen.
-
Используйте западный, православный или юлианский алгоритмы для расчета даты пасхального воскресенья для любого года.
11. Индикатор выполнения: прогресс и tqdm
Здесь есть некоторый обман, потому что это два пакета, но игнорировать один из них несправедливо.
Вы можете создать свой собственный индикатор выполнения, что может быть забавно, но быстрее и менее подвержено ошибкам использование пакетов progress или tqdm.
progress
С помощью этого пакета вы можете легко создавать индикаторы выполнения:
tqdm
tqdm делает почти то же самое, но кажется обновленным. Сначала несколько демонстраций в виде gif-анимаций:
12. IPython
Я уверен, что вы знакомы с интерактивной оболочкой Python, это отличный способ запустить Python. Но знаете ли вы также оболочку IPython? Если вы часто используете интерактивные оболочки, но не знаете IPython, вам стоит это проверить!
Некоторые из функций, предоставляемых расширенной оболочкой IPython, включают:
-
Комплексная интроспекция объекта.
-
История ввода, которая сохраняется между сеансами.
-
Кэшировать результаты вывода во время сеансов с автоматически сгенерированными ссылками.
-
Завершение с помощью табуляции, по умолчанию поддерживает завершение переменных и ключевых слов Python, имен файлов и ключевых слов функций.
-
«Волшебные» команды для управления средой и выполнения многих задач, связанных с IPython или ОС.
-
Регистрация сеанса и перезагрузка.
-
Интегрированный доступ к отладчику pdb и профилировщику Python.
-
Малоизвестная особенность IPython: его архитектура также допускает параллельные и распределенные вычисления.
IPython лежит в основе Jupyter Notebook, веб-приложения с открытым исходным кодом, которое позволяет создавать и обмениваться документами, содержащими живой код, уравнения, визуализации и описательный текст.
13. Homeassistant
Я люблю домашнюю автоматизацию. Для меня это было хобби, но я до сих пор извиняюсь, потому что теперь оно контролирует большую часть нашего дома. Я использую Home Assistant для объединения всех систем в доме. Хотя это действительно полноценное приложение, вы также можете установить его как пакет Python PyPI.
-
Большинство наших светильников автоматизированы, как и наши жалюзи.
-
Я слежу за нашим потреблением газа, потреблением электроэнергии и производством (солнечные батареи).
-
Я могу отслеживать местоположение большинства телефонов и начинать, когда вхожу в зону, например, включаю свет в гараже, когда возвращаюсь домой.
-
Он также управляет всеми нашими развлекательными системами, такими как телевизоры Samsung и динамики Sonos.
-
Он автоматически обнаруживает большинство устройств в сети, поэтому начать работу очень просто.
Я использую Home Assistant каждый день в течение 3 лет, он все еще находится в бета-версии, но это лучшая из всех платформ, которые я пробовал. Он способен интегрировать и контролировать различные устройства и протоколы, и все это бесплатно и с открытым исходным кодом.
Если вы заинтересованы в автоматизации вашего дома, убедитесь, что у вас есть шанс! Если вы хотите узнать больше, посетите их официальный сайт. Установите его на Raspberry Pi, если можете. Это, безусловно, самый простой и безопасный способ начать. Я установил его на более мощный сервер внутри контейнера Docker.
14. Flask
Flask — моя стартовая библиотека для создания быстрых веб-сервисов или простых веб-сайтов. Это микрофреймворк, а это значит, что Flask стремится сохранить простоту ядра, но расширяемость. Существует более 700 официальных расширений и расширений сообщества.
Если вы знаете, что будете разрабатывать большое веб-приложение, вам может понадобиться более полная структура. Самым популярным в этой категории является Django.
15. BeautifulSoup
Если вы вытащили какой-то HTML-код с веб-сайта, вам нужно будет проанализировать его, чтобы получить то, что вы действительно хотите. Beautiful Soup — это библиотека Python для извлечения данных из файлов HTML и XML. Он обеспечивает простой способ навигации, поиска и изменения деревьев синтаксического анализа. Это очень мощный инструмент, способный обрабатывать все виды HTML, даже если они повреждены. Поверьте мне, HTML часто ломается, так что это очень мощная функция.
Некоторые из его основных особенностей:
-
Beautiful Soup автоматически преобразует входящие документы в Unicode, а исходящие документы в UTF-8. Вам не нужно думать о кодировании.
-
Beautiful Soup работает поверх популярных синтаксических анализаторов Python, таких как lxml и html5lib, что позволяет вам экспериментировать с различными стратегиями синтаксического анализа или повышать гибкость.
-
BeautifulSoup анализирует все, что вы ему даете, и выполняет обход дерева за вас. Вы можете указать ему «найти все ссылки» или «найти заголовки таблиц, выделенные жирным шрифтом, и дать мне этот текст».
-
Ну вот и все, что мы сегодня рассказали. Если вам интересен Python, присоединяйтесь к нам【общение на питонеЮбка], получите учебные материалы и исходный код бесплатно.