Язык Python
Стандартная библиотека python очень обширна. В ней есть инструменты для работы с файловой системой, сервисами операционной системы, поддержка многопоточности, инструменты для работы с сетью и многие другое. В этом разделе мы рассмотрим несколько стандартных модулей python.
Работа с операционной системой
Модуль sys
Модуль sys обеспечивает доступ к параметрам и функциям операционной системы.
Список sys.argv хранит имя запущенного скрипта и аргументы командной строки, переданные при его запуске:
# test.py import sys for idx, item in enumerate(sys.argv): print(f'Arg idx>: item:8> type(item)>')
user@host:~$ python test.py arg1 arg2 345 Arg 0: test.py 'str'> Arg 1: arg1 'str'> Arg 2: arg2 'str'> Arg 3: 345 'str'>
Переменная sys.executable позволяет узнать какой именно интерпретатор python используется:
print(sys.executable) # /home/vitaly/miniconda3/envs/tf2/bin/python
Функция sys.exit позволяет завершить выполнение программы. Эта функция принимает один аргумент — код выхода, который по умолчанию равен нулю. Большинство систем будет считать код 0 признаком успешного завершения программы, а любое другое число от 1 до 127 будет считать признаком ненормального завершения. Если передан объект другого типа, то он будет выведен в стандартный поток вывода, а код выхода будет равен 1. Функция sys.exit всегда генерирует исключение SystemExit, поэтому не стоит рассматривать ее как стандартный способ завершения программы. Используйте ее только в подходящих случаях, которые чаще всего связаны с невозможностью продолжения работы программы.
Переменная sys.path обеспечивает доступ к переменной окружения PYTHONPATH . Эта переменная содержит список путей, в которых выполняется поиск модулей. Если необходимый модуль расположен в директории, которая не входит в PYTHONPATH , то перед подключением этого модуля необходимо добавить эту директорию в переменную sys.path :
# 'path/to/my/facorite/module/dir/mymodule.py' sys.path.append('path/to/my/facorite/module/dir') import mymodule
Можно указывать абсолютный или относительный путь. Модуль sys имеет еще много инструментов, которые описаны в документации.
Модуль os
Модуль os предоставляет инструменты для работы с операционной системой и файловой системой.
Функции os.getenv и os.putenv позволяют получать и изменять значения переменных окружения. Функция os.system позволяет выполнять консольные команды, запуская при этом дочерний процесс. Рассмотрим следующий скрипт:
# test.py import os import sys print(f' HOME: os.getenv("HOME")>') os.putenv('NEWENV', 'value') print(f'NEWENV: os.getenv("NEWENV")>') if os.getenv('NEWENV') is not None: sys.exit(0) os.system('python test.py')
При работе скрипта можно получить вывод, подобный такому:
HOME: /home/vitaly NEWENV: None HOME: /home/vitaly NEWENV: value
Разберемся с тем что произошло. Переменная окружения HOME содержит путь к домашней директории пользователя. Мы получили значение этой переменной с помощью os.genenv (в данном случае /home/vitaly ) и вывели его в консоль. Затем, c помощью sys.putenv , мы задали значение value новой переменной окружения NEWENV и сразу прочитали его. Функция os.getenv вернула None , поскольку функция sys.putenv оказывает влияние только на окружение дочерних процессов. Чтобы это проверить, мы снова запустили интерпретатор python с нашим скриптом test.py , используя os.system . В дочернем процессе снова были выведены переменные окружения HOME и NEWENV . В дочернем процессе переменная NEWENV определена, поэтому сработало условие для выхода из программы с помощью sys.exit(0) .
Функция os.listdir возвращает список названий объектов, лежащий в заданной директории.
Модуль os.path
Модуль os.path содержит полезные инструменты для работы с путями файловой системы. Функция os.path.exists проверяет указывает ли путь на существующий объект в файловой системе. Функция os.path.isfile имеет схожий смысл, но возвращает True только в том случае, если объект является обычным файлом (не директория и не ссылка):
os.path.exists('/home/vitaly') # True os.path.exists('/home/david') # False os.path.isfile('/home/vitaly') # False
Функции os.path.join , os.path.split и os.path.splitext выполняют часто встречающиеся манипуляции со строками путей:
path = os.path.join('/home', 'vitaly', 'test.py') # /home/vitaly/test.py head, tail = os.path.split(path) # ['/home/vitaly', 'test.py'] root, ext = os.path.splitext(path) # ['/home/vitaly/test', '.py']
Модуль shutil
Модуль shutil предоставляет высокоуровневые инструменты для операций с файлами. Вот несколько примеров:
# копирование файла в директорию shutil.copy('filename', 'path/to/dir') # копирование файла в файл с другим именем shutil.copyfile('filename1', 'filename2') # рекурсивное копирование директории dir1 в директорию dir2 shutil.copytree('path/to/dir1', 'path/to/dir2') # рекурсивное удаление содержимого директории dir shutil.rmtree('path/to/dir') # рекурсивное перемещение файла или директории shutil.move(src, dst)
Модуль glob
Модуль glob позволяет выполнять поиск объектов в файловой системе, имена которых удовлетворяют заданному паттерну:
# список текстовых файлов в текущей директории text_files = glob.glob('./*.txt') # рекурсивный поиск файлов с расширением .py, # начиная с текущей директории text_files_all = glob.glob('./**/*.py', recursive=True)
Работа со строками
Модуль string
Модуль string содержит различные инструменты для работы со строками, многие из которых дублируют возможности стандартного типа str . Модуль string содержит набор констант, которые часто оказываются полезны:
string.ascii_lowercase # 'abcdefghijklmnopqrstuvwxyz' string.ascii_uppercase # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' string.ascii_letters # 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' string.digits # '0123456789' string.punctuation # !"#$%&'()*+,-./:;?@[\]^_`<|>~
Модуль re
Модуль re содержит инструменты для работы с регулярными выражениями. Обсуждение регулярных выражений выходит за рамки этого курса. Мы рекомендуем читателю самостоятельно изучить базовые приемы работы с регулярными выражениями.
Вычисления с произвольной точностью
Модуль decimal
Модуль decimal позволяет выполнять арифметические операции с плавающей точной с фиксированной точностью:
from decimal import * getcontext().prec = 6 Decimal(1) / Decimal(7) # Decimal('0.142857') getcontext().prec = 28 Decimal(1) / Decimal(7) # Decimal('0.1428571428571428571428571429')
Объекты Decimal представлены в памяти точно. Это значит, что числа Decimal можно сравнивать с помощью операторов == и != , не опасаясь погрешности из-за округления двоичного представления (как это происходит в случае с типом float ).
В модуле decimal доступны некоторые математические функции:
getcontext().prec = 28 Decimal(2).sqrt() # Decimal('1.414213562373095048801688724') Decimal(1).exp() # Decimal('2.718281828459045235360287471') Decimal('10').ln() # Decimal('2.302585092994045684017991455') Decimal('10').log10() # Decimal('1')
Модуль fractions
Тип Fraction из модуля fractions описывает рациональные числа — числа, которые можно представить в виде обыкновенной дроби:
from fractions import Fraction from math import pi, cos Fraction(16, -10) # Fraction(-8, 5) Fraction('3.1415926535897932').limit_denominator(1000) # Fraction(355, 113) Fraction(cos(pi/3)) # Fraction(4503599627370497, 9007199254740992)
В последнем примере мы воспользовались модулем math , который мы не будем обсуждать, поскольку его возможности перекрываются модулем numpy . Модуль numpy будет рассмотрен в следующих частях.
Продвинутые структуры данных и эффективное итерирование
Модуль queue
Модуль queue содержит реализацию нескольких структур данных, среди которых FIFO-очередь queue.Queue и очередь с приоритетом queue.PriorityQueue . Очередь с приоритетом возвращает не первый добавленный элемент, а наименьший:
from queue import Queue, PriorityQueue arr = [3, 6, 1, 9, 4, 7, 2, 5, 8, 1] q = Queue() for i in arr: q.put_nowait(i) while not q.empty(): print(q.get_nowait(), end=' ') # 3 6 1 9 4 7 2 5 8 1 pq = PriorityQueue() for i in arr: pq.put_nowait(i) while not pq.empty(): print(pq.get_nowait(), end=' ') # 1 1 2 3 4 5 6 7 8 9
Типы модуля queue созданы для работы в многопоточной среде исполнения. С особенностями многопоточной работы, которые мы не будем обсуждать, связано использование методов get_nowait и put_nowait вместо get и put .
Модуль collections
Модуль collections расширяет набор стандартных контейнеров python. Рассмотрим три типа данных из этого модуля.
Функция namedtuple() позволяет создавать типы данных с именованными полями:
from collections import namedtuple Vector = namedtuple('Vector', ['x', 'y', 'z']) v1 = Vector(1., 0.5, 0.6) v1.x # 1. v1.y # 0.5 v1.z # 0.6
Тип deque реализует контейнер двусторонняя очередь, или дек. Это последовательный контейнер, который позволяет эффективно добавлять и удалять элементы в начало и в конец:
from collections import deque deq = deque([1, 3, 5]) deq.append('a') # [1, 3, 5, 'a'] deq.appendleft(False) # [False, 1, 3, 5, 'a'] a = deq.pop() # a = 'a', deq = ['False', 1, 3, 5] b = deq.popleft() # b = False, deq = [1, 3, 5]
Тип Counter является подклассом типа dict и позволяет удобно подсчитывать количество вхождений элементов в контейнере, например:
from collections import Counter the_longest_word_in_english\ = 'pneumonoultramicroscopicsilicovolcanoconiosis' cnt = Counter(the_longest_word_in_english) for key, val in cnt.items(): print(f'key>: val>', end=', ') # p: 2, n: 4, e: 1, u: 2, m: 2, o: 9, l: 3, t: 1, r: 2, a: 2, i: 6, c: 6, s: 4, v: 1 cnt.most_common(1) # [('o', 9)]
Модуль itertools
Модуль itertools содержит множество инструментов для эффективного итерирования по элементам контейнеров. Эффективное в данном случае означает, что необходимое следующее значение генерируется на лету, без хранения всех значений, количество которых может быть очень большое. Рассмотрим несколько инструментов из этого модуля:
import itertools arr = list(range(5)) # arr = [0, 1, 2, 3, 4] for item in itertools.accumulate(arr): print(item, end=' ') # 0 1 3 6 10 for perm in itertools.permutations(arr): print(''.join(map(str, perm)), end=' ') # 01234 01243 01324 01342 01423 01432 . for comb in itertools.combinations(arr, 3): print(''.join(map(str, comb)), end=' ') # 012 013 014 023 024 034 123 124 134 234
Время и дата с модулем datetime
Модуль datetime позволяет полноценно работать с объектами даты и времени:
from datetime import date, timedelta d1 = date.fromisoformat('2019-12-04') d2 = date(2002, 12, 31) d1 d2 # False delta = d1 - d2 delta.days # 6182 type(delta) # delta2 = timedelta(days=15) d3 = d1 + delta2 # 2019-12-19 d3.weekday() # 3 (Среда) d4 = date.today() # 2020-07-15
import time from datetime import datetime dt1 = datetime.fromtimestamp(time.time()) # 2020-07-15 21:47:09.036145 dt2 = datetime.fromisoformat('2020-07-15 21:47:09.036145') dt2.timestamp() # 1594824429.036145 (секунд прошло с 1970-01-01)
Резюме
В этом разделе мы выполнили краткий обзор возможностей некоторых стандартных модулей языка python. На этаме планирования нового проекта на python разумно изучить возможности существующих модулей (не только стандартных). Большое сообщество разработчиков и разнообразие доступных модулей являются сильными сторонами python.
Источники
- docs.python.org/3/library/
- PEP 206. Batteries Included Philosophy
- Введение
- Настройка рабочей среды
- Язык C++
- Язык Python
- Основы синтаксиса языка python
- Строки
- Стандартные модули python, часть I
- ООП в python
- Стандартные модули II
- Итераторы и генераторы
- Вычисления с библиотекой numpy
- Визуализация данных с matplotlib
Встроенные функции Python
Как можно посмотреть исходный код встроенных функций? Пробовал подключить модуль inspect и, вызывая функцию getsource , задавать в качестве параметра нужную мне функцию. Но метод заданного модуля отказался возвращать исходный код для встроенных функций, но, например, если скормить функции getsource функцию print , то ошибки не будет и я смогу получить то, что хотел.
Отслеживать
задан 3 окт 2015 в 8:34
Uladzislau Radzko Uladzislau Radzko
542 4 4 серебряных знака 16 16 бронзовых знаковна то они и встроенные функции. print долгое время также был встроенной функцией-оператором (не ручаюсь за точное определение). В большинства таких функций исходный код не на питоне, а где то глубоко в с/с++ коде.
3 окт 2015 в 8:47
@KoVadim: print не был функцией в Питоне 2 (без __future__ ). print() в Питоне 3 является функцией (built-in function in CPython — как в смысле, что не на чистом Питоне реализована, так и что в __builtins__ пространстве имен находится).
4 окт 2015 в 5:43
я знаю, что print был не функцией — я же об этом написал. Но потом его решили сделать ею.
4 окт 2015 в 7:212 ответа 2
Сортировка: Сброс на вариант по умолчанию
Как написал KoVadim, многие встроенные функции питона написаны на C. Но, так как Python — язык с открытым исходным кодом, то исходники можно посмотреть здесь. Если интересна реализация тех же модулей на питоне, то советую посмотреть исходники PyPy.
P.S. Чтобы узнать, какой файл относится к какому модулю, обычно можно посмотреть свойство __file__ .
P.P.S. Есть похожий вопрос на английском стэке.
Отслеживать
ответ дан 3 окт 2015 в 12:47
valignatev valignatev
203 3 3 серебряных знака 13 13 бронзовых знаковФраза «built-in function» в сообщении об ошибке означает, что соответствующая функция реализована не на чистом Питоне:
>>> import inspect >>> import numpy >>> inspect.getsource(print) Traceback (most recent call last): . TypeError: is not a module, class, method, function, traceback, frame, or code object >>> inspect.getsource(numpy.array) Traceback (most recent call last): . TypeError: is not a module, class, method, function, traceback, frame, or code objectОчевидно, что numpy.array не является «встроенной функцией» в смысле принадлежности к __builtins__ пространству имён, а является «встроенной функцией» в смысле «реализована не на чистом Питоне».
Исходный код подобных функций следует искать в соответствующих проектах: CPython’s print() , Pypy, Jython’s print() , numpy.array() , numpy for Pypy.
Python. Урок 13. Модули и пакеты

Модули и пакеты значительно упрощают работу программиста. Классы, объекты, функции и константы, которыми приходится часто пользоваться можно упаковать в модуль, и, в дальнейшем, загружать его в свои программы при необходимости. Пакеты позволяют формировать пространства имен для работы с модулями.
Модули в Python
Что такое модуль в Python?
Под модулем в Python понимается файл с расширением .py. Модули предназначены для того, чтобы в них хранить часто используемые функции, классы, константы и т.п. Можно условно разделить модули и программы: программы предназначены для непосредственного запуска, а модули для импортирования их в другие программы. Стоит заметить, что модули могут быть написаны не только на языке Python, но и на других языках (например C).
Как импортировать модули в Python?
Самый простой способ импортировать модуль в Python это воспользоваться конструкцией:
import имя_модуля
Импорт и использование модуля math, который содержит математические функции, будет выглядеть вот так.
>>> import math >>> math.factorial(5) 120
За один раз можно импортировать сразу несколько модулей, для этого их нужно перечислить через запятую после слова import:
import имя_модуля1, имя_модуля2
>>> import math, datetime >>> math.cos(math.pi/4) 0.707106781186547 >>> datetime.date(2017, 3, 21) datetime.date(2017, 3, 21)
Если вы хотите задать псевдоним для модуля в вашей программе, можно воспользоваться вот таким синтаксисом:
import имя_модуля as новое_имя
>>> import math as m >>> m.sin(m.pi/3) 0.866025403784438
Используя любой из вышеперечисленных подходов, при вызове функции из импортированного модуля, вам всегда придется указывать имя модуля (или псевдоним). Для того, чтобы этого избежать делайте импорт через конструкцию from … import…
from имя_модуля import имя_объекта
>>> from math import cos >>> cos(3.14) 0.999998731727539
При этом импортируется только конкретный объект (в нашем примере: функция cos), остальные функции недоступны, даже если при их вызове указать имя модуля.
>>> from math import cos >>> cos(3.14) -0.999998731727539 >>> sin(3.14) Traceback (most recent call last): File "", line 1, in module> sin(3.14) NameError: name 'sin' is not defined >>> math.sin(3.14) Traceback (most recent call last): File "", line 1, in module> math.sin(3.14) NameError: name 'math' is not defined
Для имортирования нескольких функций из модуля, можно перечислить их имена через запятую.
from имя_модуля import имя_объекта1, имя_объекта2
>>> from math import cos, sin, pi >>> cos(pi/3) 0.500000000000000 >>> sin(pi/3) 0.866025403784438
Импортируемому объекту можно задать псевдоним.
from имя_модуля import имя_объекта as псевдоним_объекта
>>> from math import factorial as f >>> f(4) 24
Если необходимо импортировать все фукнции, классы и т.п. из модуля, то воспользуйтесь следующей формой оператора from … import …
from имя_модуля import *
>>> from math import * >>> cos(pi/2) 6.123233995736766e-17 >>> sin(pi/4) 0.707106781186547 >>> factorial(6) 720
Пакеты в Python
Что такое пакет в Python?
Пакет в Python – это каталог, включающий в себя другие каталоги и модули, но при этом дополнительно содержащий файл __init__.py. Пакеты используются для формирования пространства имен, что позволяет работать с модулями через указание уровня вложенности (через точку).
Для импортирования пакетов используется тот же синтаксис, что и для работы с модулями.
Использование пакетов в Python
Рассмотрим следующую структуру пакета:
fincalc |-- __init__.py |-- simper.py |-- compper.py |-- annuity.py
Пакет fincal содержит в себе модули для работы с простыми процентами ( simper.py ), сложными процентами ( compper.py ) и аннуитетами ( annuity.py ).
Для использования фукнции из модуля работы с простыми процентами, можно использовать один из следующих вариантов:
import fincalc.simper fv = fincalc.simper.fv(pv, i, n)
import fincalc.simper as sp fv =sp.fv(pv, i, n)
from fincalc import simper fv = simper.fv(pv, i, n)
Файл __init__.py может быть пустым или может содержать переменную __all__, хранящую список модулей, который импортируется при загрузке через конструкцию
from имя_пакета import *
Например для нашего случая содержимое __init__.py может быть вот таким:
__all__ = ["simper", "compper", "annuity"]
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Как посмотреть реализацию модуля в python

- указатель
- модули |
- Python »
- 3.8.8 Документация »
_ __future__ Определения будущих инструкций. __main__ Среда, в которой выполняется скрипт верхнего уровня. _dummy_thread Замена модуля _thread. _thread Низкоуровневый API потоков. a abc Абстрактные базовые классы согласно :pep:`3119`. aifc Чтение и запись аудиофайлов в формате AIFF или AIFC. argparse Библиотека парсинга опций командной строки и аргументов array Пространственно-эффективные массивы типизированных числовых значений. ast Классы абстрактного синтаксического дерева и манипуляции над ними. asynchat Поддержка асинхронных запрос/ответ протоколов. asyncio Асинхронный I/O. asyncore Базовый класс для разработки асинхронных сервисов обработки сокетов. atexit Регистрация и выполнение очищающих функций. audioop Манипуляция необработанными аудиоданными. b base64 RFC 3548: Base16, Base32, Base64 кодировки данных; Base85 и Ascii85 bdb Отладчный фреймворк. binascii инструменты для преобразования между двоичной и различных символов ASCII-закодированы двоичных представлений. binhex Кодирование и декодирование файлов в binhex4 формате. bisect Алгоритмы деления пополам для двоичного поиска. builtins Модуль предоставляет встроенное пространство имен. bz2 Интерфейсы для bzip2 сжатия и декомпрессии. c calendar Функции для работы с календарями, включая эмуляцию программы cal из Unix. cgi Хелперы для запуска Python скриптов через Общий Интерфейс Шлюза. cgitb Конфигурируемый обработчик трейсбэков для CGI сценариев. chunk Модуль для чтения IFF чанков. cmath Математические функции для комплексных чисел. cmd Создание линейно ориентированных командных интерпретаторов code Средства для реализации циклов чтения-исполнения-печати. codecs Кодирование и декодирование данных и потоков. codeop Компиляция Python кода (возможно, неполное) 
collections Контейнерные типы данных collections.abc Абстрактные базовые классы для контейнеров colorsys Функции преобразования между RGB и другими цветовыми системами. compileall Инструменты для байт-компиляции всех исходных файлов Python в дереве каталогов. 
concurrent concurrent.futures Конурентное выполнение вычислений с использованием потоков или процессов. configparser Парсер файла конфигурации. contextlib Утилиты для with-оператор контекста. contextvars Переменные контекста copy Функции поверхностного и глубокого копирования. copyreg Регистрация функций поддержки pickle. cProfile crypt (Unix) Функция crypt() используемая для проверки Unix паролей. csv Запись и чтение табличных данных в и из файлов с разделителями. ctypes Python библиотека внешних функций. 
curses (Unix) Интерфейс к библиотеке curses, предоставляющий переносимую обработку терминала. curses.ascii Константы и функции принадлежности набору ASCII символов. curses.panel Расширение стека панелей, которое добавляет глубину curses окнам. curses.textpad Emacs-подобное редактирование ввода в окне curses. d dataclasses Создание специальных методов для пользовательских классов. datetime Базовые типы для представления даты и времени. 
dbm Интерфейсы для различных форматов Unix «баз данных». dbm.dumb Портабельная реализация простого интерфейса DBM. dbm.gnu (Unix) Реинтерпретация GNU dbm dbm.ndbm (Unix) Стандартный интерфейс «базы данных», основанной на ndbm. decimal Реализация общей спецификации десятичной арифметики. difflib Помощники для вычисления различий между объектами. dis Дизассемблер для Python байткода. 
distutils Поддержка сборки и установки Python модулей в существующую установку Python. distutils.archive_util Utility functions for creating archive files (tarballs, zip files, . ) distutils.bcppcompiler distutils.ccompiler Abstract CCompiler class distutils.cmd Provides the abstract base class :class:`~distutils.cmd.Command`. This class is subclassed by the modules in the distutils.command subpackage. distutils.command Contains one module for each standard Distutils command. distutils.command.bdist Build a binary installer for a package distutils.command.bdist_dumb Build a «dumb» installer — a simple archive of files distutils.command.bdist_msi Build a binary distribution as a Windows MSI file distutils.command.bdist_packager Abstract base class for packagers distutils.command.bdist_rpm Build a binary distribution as a Redhat RPM and SRPM distutils.command.bdist_wininst Build a Windows installer distutils.command.build Build all files of a package distutils.command.build_clib Build any C libraries in a package distutils.command.build_ext Build any extensions in a package distutils.command.build_py Build the .py/.pyc files of a package distutils.command.build_scripts Build the scripts of a package distutils.command.check Check the meta-data of a package distutils.command.clean Clean a package build area distutils.command.config Perform package configuration distutils.command.install Install a package distutils.command.install_data Install data files from a package distutils.command.install_headers Install C/C++ header files from a package distutils.command.install_lib Install library files from a package distutils.command.install_scripts Install script files from a package distutils.command.register Register a module with the Python Package Index distutils.command.sdist Build a source distribution distutils.core The core Distutils functionality distutils.cygwinccompiler distutils.debug Provides the debug flag for distutils distutils.dep_util Utility functions for simple dependency checking distutils.dir_util Utility functions for operating on directories and directory trees distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed distutils.errors Provides standard distutils exceptions distutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts distutils.fancy_getopt Additional getopt functionality distutils.file_util Utility functions for operating on single files distutils.filelist The FileList class, used for poking about the file system and building lists of files. distutils.log A simple logging mechanism, :pep:`282`-style distutils.msvccompiler Microsoft Compiler distutils.spawn Provides the spawn() function distutils.sysconfig Low-level access to configuration information of the Python interpreter. distutils.text_file Provides the TextFile class, a simple interface to text files distutils.unixccompiler UNIX C Compiler distutils.util Miscellaneous other utility functions distutils.version Implements classes that represent module version numbers. doctest Тестовые фрагменты кода внутри докстрингах. dummy_threading Замена модуля threading e 
email Пакет, поддерживающий разбор, обработку и генерацию сообщений электронной почты. email.charset Character Sets email.contentmanager Хранение и извлечение контента из частей MIME email.encoders Кодировки для почтовых сообщений. email.errors Классы исключений, используемые пакетом электронной почты. email.generator Создание текстовых сообщений электронной почты из структуры сообщений. email.header Представление не-ASCII заголовков email.headerregistry Автоматический синтаксический анализ заголовков на основе имени поля email.iterators Итерация по дереву объекта сообщения. email.message Базовый класс, представляющий сообщения электронной почты. email.mime Построить сообщения MIME. email.parser Разбор текстовых сообщений электронной почты для создания структуры объекта сообщения. email.policy Управление парсингом и генерацией сообщений email.utils Различные утилиты пакета email. 
encodings encodings.idna Реализация интернационализованных доменных имён encodings.mbcs Кодовая страница Windows ANSI encodings.utf_8_sig UTF-8 кодировка с BOM сигнатурой ensurepip Начальная загрузка установщика «pip» в существующую установку Python или виртуальную среду. enum Реализация класса перечисления. errno Стандартные символы системы errno. f faulthandler Дамп трассировку Python. fcntl (Unix) Системные вызовы fcntl() и ioctl(). filecmp Эффективное сравнение файлов. fileinput Цикл над стандартным вводом или списком файлов. fnmatch Соответствие шаблону имени файла в стиле оболочки Unix. formatter Не рекомендуется: Универсальный форматер вывода и интерфейс устройства. fractions Рациональные числа. ftplib Клиент протокола FTP (требуются сокеты). functools Функции и операции высшего порядка над вызываемыми объектами. g gc Интерфейс для цикла сборщика мусора. getopt Портабельный парсер для параметров командной строки; поддержка как коротких, так и длинных имён опций. getpass Портабельное чтение паролей и получение userid. gettext Многоязычные службы интернационализации. glob Шаблоны расширений пути в стиле оболочки Unix. grp (Unix) База данных групп (getgrnam() и друзья). gzip Интерфейсы для сжатия и распаковки gzip с использованием файловых объектов. h hashlib Алгоритмы безопасного хеширования и дайджеста сообщений. heapq Алгоритм очереди кучи (приоритетная очередь). hmac Реализация ключевого хеширования для аутентификации сообщений (HMAC) 
html Помощники для манипулирования HTML. html.entities Определения общих сущностей HTML. html.parser Простой парсер, который может обрабатывать HTML и XHTML. 
http HTTP коды состояния и сообщения http.client Клиент протокола HTTP и HTTPS (требуются сокеты). http.cookiejar Классы для автоматической обработки HTTP cookie. http.cookies Поддержка управления состоянием HTTP (куки). http.server HTTP сервер и обработчики запросов. i imaplib Клиент протокола IMAP4 (требуются сокеты). imghdr Определение типа изображения, содержащегося в файле или байтовом потоке. imp Не рекомендуется: Доступ к реализации инструкции import. 
importlib Реализация машенерии импорта. importlib.abc Абстрактные базовые классы, связанные с импортом importlib.machinery Importers and path hooks importlib.resources Чтение, открытие и доступ к ресурсам пакета importlib.util Код утилит для импортеров inspect Извлечение информации и исходного кода из живых объектов. io Основные инструменты для работы с потоками. ipaddress Библиотека манипулирования IPv4/IPv6. itertools Функции создания итераторов для эффективных циклов. j 
json Кодирование и декодирование формата JSON. json.tool Командная строка для проверки и красивой печати JSON. k keyword Проверить, является ли строка ключым словом в Python. l lib2to3 Библиотека 2to3 linecache Предоставляет произвольный доступ к отдельным строкам текстовых файлов. locale Сервисы интернационализации. 
logging Гибкая система регистрации событий для приложений. logging.config Конфигурация модуля logging. logging.handlers Обработчики для модуля logging. lzma Python обёртка для библиотеки сжатия liblzma. m mailbox Манипулирование почтовыми ящиками в различных форматах mailcap Обработка файлов Mailcap. marshal Преобразует объекты Python в потоки байтов и обратно (с разными ограничениями). math Математические функции (sin() и т.д.). mimetypes Сопоставление имен файлов с MIME типами. mmap Интерфейс к отображенным в память файлам для Unix и Windows. modulefinder Найти модули, используемые скриптом. msilib (Windows) Создание файлов установщика Microsoft и файлов CAB. msvcrt (Windows) Другие полезные процедуры из среды выполнения MS VC++. 
multiprocessing Процессный параллелизм. multiprocessing.connection API для работы с сокетами. multiprocessing.dummy Обертка заглушка вокруг потоков. multiprocessing.managers Обмен данными между процессами с общими объектами. multiprocessing.pool Создать пулы процессов. multiprocessing.shared_memory Предоставляет общую память для прямого доступа между процессами. multiprocessing.sharedctypes Аллоцировать объекты ctypes из общей памяти. n netrc Загрузка файлов .netrc. nis (Unix) Интерфейс для библиотеки Sun NIS (Желтые страницы). nntplib Клиент протокола NNTP (требуются сокеты). numbers Числовые абстрактные базовые классы (Complex, Real, Integral и т.д.). o operator Функции, соответствующие стандартным операторам. optparse Не рекомендуется: Библиотека парсинга параметров командной строки. 
os Разные интерфейсы операционной системы. os.path Операции с именами путей. ossaudiodev (Linux, FreeBSD) Доступ к OSS-совместимым аудиоустройствам. p parser Доступ к деревьям разбора для исходного кода Python. pathlib Объектно-ориентированные пути файловой системы pdb Отладчик Python для интерактивных интерпретаторов. pickle Конвертирование объектов Python в потоки байтов и обратно. pickletools Содержит подробные комментарии о протоколах pickle и опкодах pickle-машины, а также некоторые полезные функции. pipes (Unix) Интерфейс Python для pipelines оболочки Unix. pkgutil Утилиты для системы импорта. platform Извлекает как можно больше данных, идентифицирующих платформу. plistlib Создание и рарсинг файлов plist Mac OS X. poplib Клиент протокола POP3 (требуются сокеты). posix (Unix) Наиболее распространенные системные вызовы POSIX (обычно используются через модуль os). pprint Приятная печать данных. profile Профилировщик исходного кода Python. pstats Объект статистики для использования с профилировщиком. pty (Linux) Обработка псевдо-терминала для Linux. pwd (Unix) База паролей (getpwnam() и друзья). py_compile Генерация файлов байт-кода из исходных файлов Python. pyclbr Поддерживает извлечение информации для браузера модуля Python. pydoc Генератор документации и интерактивная справочная система. q queue Класс синхронизированной очереди. quopri Кодирование и декодирование файлов, используя quoted-printable MIME кодировку. r random Генерация псевдослучайных чисел с различными общими распределениями. re Операции с регулярными выражениями. readline (Unix) Поддержка Python GNU readline. reprlib Альтернативная реализация repr() с ограничениями по размеру. resource (Unix) Интерфейс для предоставления информации об использовании ресурсов в текущем процессе. rlcompleter Завершение идентификатора Python, подходит для библиотеки GNU readline. runpy Найти и запустить модули Python, не импортируя их сначала. s sched Планировщик событий общего назначения. secrets Генерация безопасных случайных чисел для управления secrets. select Дождаться завершения I/O в нескольких потоках. selectors Высокоуровневое мультиплексирование I/O. shelve Сохраняемость объектов Python. shlex Простой лексический анализ для оболочечных языков Unix. shutil Высокоуровневые файловые операции, включая копирование. signal Установить обработчики для асинхронных событий. site Модуль, ответственный за сайт-специфичную конфигурацию. smtpd Реализация SMTP-сервера в Python. smtplib Клиент протокола SMTP (требуются сокеты). sndhdr Определите типа звукового файла. socket Низкоуровневый сетевой интерфейс. socketserver Фреймворк для сетевых серверов. spwd (Unix) База данных теневых паролей (getspnam() и друзья). sqlite3 Реализация DB-API 2.0 с использованием SQLite 3.x. ssl TLS/SSL обёртка для сокетных объектов stat Утилиты для интерпретации результатов os.stat (), os.lstat() и os.fstat(). statistics Функции математической статистики. string Общие строковые операции. stringprep Подготовка строки, согласно RFC 3453 struct Интерпретация байтов как упакованные двоичные данные. subprocess Управление подпроцессами. sunau Предоставляет интерфейс для звукового формата Sun AU. symbol Константы, представляющие внутренние узлы дерева разбора. symtable Интерфейс к внутренним таблицам символов компилятора. sys Доступ к системоспецифичным параметрам и функциям. sysconfig Информация о конфигурации Python syslog (Unix) Интерфейс для процедур библиотеки Unix syslog. t tabnanny Средство для обнаружения проблем, связанных с пробелом в исходных файлах Python в дереве каталогов. tarfile Чтение и запись архивных файлов в формате tar. telnetlib Клиентский класс Telnet. tempfile Генерация временных файлов и каталогов. termios (Unix) POSIX стиль управления tty. 
test Пакет регрессионных тестов, содержащий набор тестов для Python. test.support Поддержка набора регрессионных тестов Python. test.support.script_helper Поддержка тестов на выполнение скриптов Python. textwrap Обертывание и заполнение текста. threading Потоковый параллелизм. time Время доступа и конверсии. timeit Измерение времени выполнения небольших фрагментов кода. 
tkinter Интерфейс к Tcl/Tk для графических пользовательских интерфейсов tkinter.scrolledtext (Tk) Текстовый виджет с вертикальной полосой прокрутки. tkinter.tix Tk виджеты расширения для Tkinter tkinter.ttk Стилезуемое множество виджетов Tk. token Константы, представляющие конечные узлы дерева разбора. tokenize Лексический сканер для исходного кода Python. trace Трассировка или отслеживание выполнения инструкции Python. traceback Распечатать или получить трассировку стека. tracemalloc Отслеживание выделения памяти. tty (Unix) Служебные функции, которые выполняют общие операции управления терминалом. turtle Образовательная платформа для простых графических приложений turtledemo Программа для просмотра примеров черепаших скриптов types Имена для встроенных типов. typing Поддержка подсказок типа (см. :pep:`484`). u unicodedata Доступ к базе данных Юникод. 
unittest Фреймворк юнит тестирования для Python. unittest.mock Библиотека mock объектов. 
urllib urllib.error Классы исключений, созданные urllib.request. urllib.parse Разобрать URL-адреса или собирать их из компонентов. urllib.request Расширяемая библиотека для открытия URL-адресов. urllib.response Классы ответов, используемые urllib. urllib.robotparser Загрузить файл robots.txt и ответить на вопросы о возможности извлечения других URL-адресов. uu Кодировать и декодировать файлы в формате uuencode. uuid Объекты UUID (универсальные уникальные идентификаторы) согласно RFC 4122 v venv Создание виртуальных сред. w warnings Выдача предупреждающих сообщений и контроль их расположения. wave Предоставление интерфейса для звукового формата WAV. weakref Поддержка слабых ссылок и слабых словарей. webbrowser Простой в использовании контроллер для веб-браузеров. winreg (Windows) Процедуры и объекты для управления реестром Windows. winsound (Windows) Доступ к средствам воспроизведения звука для Windows. 
wsgiref Утилиты WSGI и справочная реализация. wsgiref.handlers Базовые классы сервера/шлюза WSGI. wsgiref.headers Инструменты заголовка ответа WSGI. wsgiref.simple_server Простой HTTP-сервер WSGI. wsgiref.util Утилиты среды WSGI. wsgiref.validate Средство проверки соответствия WSGI. x xdrlib Кодеры и декодеры для внешнего представления данных (XDR). 
xml Пакет, содержащий модули обработки XML. xml.dom API объектной модели документа для Python. xml.dom.minidom Реализация минимальной объектной модели документа (DOM). xml.dom.pulldom Поддержка построения частичных деревьев DOM из событий SAX. xml.etree.ElementTree Реализация ElementTree API. xml.parsers.expat Интерфейс к Expat не проверяющему XML парсеру. xml.parsers.expat.errors xml.parsers.expat.model xml.sax Пакет, содержащий базовые классы SAX2 и вспомогательные функции. xml.sax.handler Базовые классы для обработчиков событий SAX. xml.sax.saxutils Удобные функции и классы для работы с SAX. xml.sax.xmlreader Интерфейс, который должны реализовать совместимые с SAX XML-парсеры. 
xmlrpc xmlrpc.client Клиентский доступ к XML-RPC. xmlrpc.server Базовые реализации сервера XML-RPC. z zipapp Управление исполняемыми zip-архивами Python zipfile Чтение и запись архивных файлов в формате ZIP. zipimport Поддержка импорта модулей Python из ZIP-архивов. zlib Низкоуровневый интерфейс к подпрограммам сжатия и декомпрессии, совместимый с gzip.
