- Основные модули Python
- Графический интерфейс
- Базы данных
- Веб-разработка
- Манипуляции с изображениями и видео
- Data Science и математика
- Разработка игр
- Звук
- Mac OS
- USB и последовательные порты
- Разное
- Модули
- Модуль csv — чтение и запись CSV файлов
- Модуль shutil
- Модуль unittest: тестируем свои программы
- Модуль subprocess
- Модуль fractions
- Модуль cmath
- Модуль glob
- Модуль copy — поверхностное и глубокое копирование объектов
- Модуль functools
- Модуль os.path
Основные модули Python
Одна из отличительных черт Python — его невероятная расширяемость. Модули из списка, представленного в нашей статье, покрывают практически все нужды разработчика. С их помощью вы сможете работать с базами данных, графическими пользовательскими интерфейсами, изображениями, звуком и т. д.
Графический интерфейс
В стандартной библиотеке Python есть графическая библиотека интерфейсов Tkinter. Но при помощи внешних модулей вы можете поднять GUI ваших приложений на новый уровень.
wxPython. Создает по-настоящему нативные пользовательские интерфейсы для Python-приложений, которые могут запускаться на Windows, Mac и Linux, а также прочих Unix-подобных системах практически без каких-либо модификаций.
PyGObject. Пакет Python, предоставляющий привязки для библиотек на базе Gobject, таких как GTK, GStreamer, WebKitGTK, GLib, GIO и др.
Pmw. Набор инструментов для создания на Python высокоуровневых составных виджетов (с использованием модуля Tkinter).
WCK. Расширение API, позволяющее реализовывать на чистом Python всевозможные пользовательские виджеты.
Tix. Мощный набор компонентов пользовательского интерфейса, при помощи которого можно расширить возможности ваших Tcl/Tk и Python-приложений. Использование Tix вместе с Tk очень улучшает внешний вид и функционал приложений.
Базы данных
Модули, перечисленные в этом разделе, имеют открытый исходный код. С их помощью можно существенно облегчить доступ к базам данных.
MySQLdb. Python DB API-2.0-совместимый интерфейс для доступа к базам данных MySQL.
PyGreSQL. Модуль, который служит интерфейсом для базы данных PostgreSQL. Он дает возможность работать с PostgreSQL-фичами из Python-скрипта.
Gadfly. Простая реляционная СУБД, реализованная на Python (на основе SQL).
SQLAlchemy. Библиотека Python для работы с базами данных с применением ORM. Позволяет разработчикам приложений использовать всю мощь и гибкость SQL.
KinterbasDB. Расширение Python, реализующее поддержку совместимости Python Database API 2.0 для опенсорсной реляционной базы данных Firebird и некоторых версий ее проприетарной кузины — Borland Interbase.
Веб-разработка
Python это популярный язык для веб-разработки. Все пакеты Python, перечисленные в этом разделе, делают жизнь веб-разработчика гораздо проще.
Beautiful Soup. Библиотека Python для быстрого парсинга HTML- и XML-файлов.
scrape. Модуль Python для веб-браузинга и скрапинга.
mechanize. Очень полезный модуль, благодаря которому вы получаете эмулятор браузера для взаимодействия с веб-страницами.
libgmail. Обеспечивает доступ к гугловскому сервису Gmail.
Google Maps. Благодаря этому модулю можно использовать веб-сервисы платформы Google Maps в своем приложении на Python.
Requests позволяет невероятно легко отсылать HTTP/1.1-запросы.
Selenium. При помощи этого модуля разработчики могут программными методами открывать веб-страницы, заполнять поля, кликать по кнопкам и отсылать формы.
pyquery позволяет делать jQuery-запросы в XML-документах. API этой библиотеки максимально приближен к jQuery. Для быстрой манипуляции с XML и HTML pyquery использует LXML.
Манипуляции с изображениями и видео
Python это очень мощный язык; с его помощью можно решать многие задачи, например, работать с изображениями. Стандартная библиотека не имеет встроенного функционала для этих целей, но следующие модули вам помогут.
Python Imaging Library (PIL). PIL добавляет в интерпретатор Python возможность обработки изображений. Эта библиотека поддерживает много форматов файлов и предоставляет хороший функционал для работы с графикой.
Gdmodule. Это интерфейс для библиотеки GD, созданной Томасом Баутелом.
VideoCapture. Win32-расширение для доступа к таким видеоустройствам, как веб-камеры (USB) и ТВ-карты.
MoviePy. Библиотека Python для редактирования видео: обрезка, склейка, вставка надписей, нелинейное редактирование, обработка видео и создание пользовательских эффектов.
pyscreenshot. Кроссплатформенный модуль, позволяющий делать скриншоты без установки сторонних библиотек.
Data Science и математика
Для Python есть много расширений, которые можно использовать в научных целях, например, в математике, науке о данных и инженерии.
SciPy. SciPy (произносится как «сай пай») это экосистема программного обеспечения с открытым кодом для математики, науки и инженерии.
Matplotlib. Библиотека Python для создания 2D-графиков. Генерирует пригодные для печати изображения в разных форматах. Matplotlib может использоваться в скриптах, интерпретаторе Python, в Jupyter Notebook, на серверах веб-приложений и в GUI-инструментарии.
Pandas. Быстрый, мощный, гибкий и легкий в использовании инструмент для анализа данных и работы с данными. Имеет открытый исходный код.
Numpy. Библиотека, обеспечивающая поддержку больших, многомерных массивов и матриц. Для работы с этими массивами Numpy имеет обширную коллекцию высокоуровневых математических функций.
Разработка игр
Python — это очень разносторонний язык, позволяющий программистам создавать самые разнообразные приложения, включая видеоигры.
Pygame. Набор модулей для написания видеоигр. Pygame расширяет функционал прекрасной библиотеки SDL. Благодаря ему на Python можно создавать полнофункциональные игры и мультимедиа-программы.
Pyglet. Мощная, но при этом простая в использовании библиотека Python для разработки игр и других приложений с большим количеством визуальных эффектов для Windows, Mac OS X и Linux.
pyOpenGL. Этот модуль чаще других используется для обеспечения работы с библиотекой OpenGL и связанными с нею API в программах на Python.
Звук
Благодаря нескольким очень полезным модулям работать со звуком в Python довольно просто.
pySonic. Python-враппер для высокопроизводительной кроссплатформенной звуковой библиотеки FMOD.
PyMedia. Модуль Python для манипуляций с файлами WAV, MP3, Ogg, AVI, DivX, DVD, CD-DA и др. Позволяет анализировать, демультиплексировать и мультиплексировать, декодировать и кодировать все поддерживаемые форматы. Может компилироваться для Windows, Linux и Cygwin.
PMIDI. Библиотека PMIDI служит оберткой для библиотеки Windows MIDI Streams, обеспечивая возможность использования последней в Python. Благодаря PMIDI разработчики могут на лету генерировать в своем коде синтезированные музыкальные последовательности, чтобы они проигрывались для пользователей.
Mutagen. Модуль для обработки метаданных аудио. Поддерживает аудиофайлы FLAC, M4A, Musepack, MP3, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio и WavPack.
Mac OS
Python очень хорошо интегрируется с Mac OS. Следующие модули могут пригодиться при разработке приложений для ОС Apple.
py2app. Это setuptools-команда, позволяющая создавать пакеты приложений и плагины для Mac OS X из Python-скриптов.
PyObjC. PyObjC это своего рода мост между Python и Objective-C. Благодаря ему можно создавать полнофункциональные Cocoa-приложения на чистом Python.
USB и последовательные порты
Знаете ли вы, что при помощи Python можно получить доступ к USB и последовательным портам компьютера? Если вам нужно решить подобную задачу, следующие модули помогут вам в этом.
PyUSB. Это простой в использовании модуль для доступа к USB-устройствам. PyUSB опирается на нативную системную библиотеку для USB-доступа. Работает «из коробки» с libusb 0.1, libusb 1.0, libusbx, libusb-win32 и OpenUSB, а также с Python в любой версии, начиная с 2.4 (и включая Python 3).
PySerial. Библиотека Python для доступа к последовательным портам.
USPP. Мультиплатформенный модуль Python для доступа к последовательным портам.
Разное
В таблице ниже вы найдете интересные модули, которые нельзя было отнести к какой-либо категории.
Категория | Название | Ссылка |
Network | Twisted | http://twistedmatrix.com/ |
Jabber | jabberpy | http://jabberpy.sourceforge.net/ |
Expect | pyExpect | https://pexpect.readthedocs.io/en/latest/ |
3D | VPython | http://vpython.org/ |
Модули
Основные модули в Python 3. Описание модулей и перевод документации к ним.
Модуль csv — чтение и запись CSV файлов
Формат CSV (Comma Separated Values) является одним из самых распространенных форматов импорта и экспорта электронных таблиц и баз данных. CSV использовался в течение многих лет до того, как был стандартизирован в RFC 4180. Запоздание четко определенного стандарта означает, что в данных, создаваемых различными приложениями, часто существуют незначительные различия. Эти различия могут вызвать раздражение при обработке файлов CSV из нескольких источников. Тем не менее, хотя разделители, символы кавычек и некоторые другие свойства различаются, общий формат достаточно универсален. Значит, возможно написать один модуль, который может эффективно манипулировать такими данными, скрывая детали чтения и записи данных от программиста.
Модуль shutil
Модуль shutil содержит набор функций высокого уровня для обработки файлов, групп файлов, и папок. В частности, доступные здесь функции позволяют копировать, перемещать и удалять файлы и папки. Часто используется вместе с модулем os.
Модуль unittest: тестируем свои программы
Представьте, что вы написали какую-либо программу, а теперь хотите проверить, правильно ли она работает. Что вы для этого сделаете? Скорее всего, вы запустите её несколько раз с различными входными данными, и убедитесь в правильности выдаваемого ответа.
А теперь вы что-то поменяли и снова хотите проверить корректность программы. Запускать ещё несколько раз? А если потом снова что-то поменяется? Нельзя ли как-то автоматизировать это дело?
Оказывается, можно. В Python встроен модуль unittest, который поддерживает автоматизацию тестов, использование общего кода для настройки и завершения тестов, объединение тестов в группы, а также позволяет отделять тесты от фреймворка для вывода информации.
Модуль subprocess
Модуль subprocess отвечает за выполнение следующих действий: порождение новых процессов, соединение c потоками стандартного ввода, стандартного вывода, стандартного вывода сообщений об ошибках и получение кодов возврата от этих процессов.
Модуль fractions
Модуль fractions предоставляет поддержку рациональных чисел.
Модуль cmath
Модуль cmath – предоставляет функции для работы с комплексными числами.
Модуль glob
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы «*» (произвольное количество символов), «?» (один символ), и диапазоны символов с помощью []. Для использования тильды «~» и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
Модуль copy — поверхностное и глубокое копирование объектов
Операция присваивания не копирует объект, он лишь создаёт ссылку на объект. Для изменяемых коллекций, или для коллекций, содержащих изменяемые элементы, часто необходима такая копия, чтобы её можно было изменить, не изменяя оригинал. Данный модуль предоставляет общие (поверхностная и глубокая) операции копирования.
Модуль functools
Модуль functools — сборник функций высокого уровня: взаимодействующих с другими функциями или возвращающие другие функции.
Модуль os.path
os.path является вложенным модулем в модуль os, и реализует некоторые полезные функции для работы с путями.
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов