Стандартна бібліотека мови Python
Стандартна бібліотека Python — збірка модулів, об'єктів, підпрограм для вирішення близьких за тематикою задач засобами мови Python. Бібліотека містить вбудовані модулі (написані на мові C), які забезпечують доступ до функціональних можливостей системи, таких як файловий ввід / вивід, який інакше був би недоступним для програмістів Python, а також модулі, написані на Python, які забезпечують стандартизовані рішення для багатьох проблем, які виникають у щоденному програмуванні.
Структура
У стандартну бібліотеку Python входять:
- Вбудовані функції
- Вбудовані константи
- Вбудовані типи даних
- Вбудовані виключення
- Модулі
Вбудовані функції
Перелік вбудованих функцій стандартної бібліотеки мови Python[1] :
abs() | delattr() | hash() | memoryview() | set() |
all() | dict() | help() | min() | setattr() |
any() | dir() | hex() | next() | slice() |
ascii() | divmod() | id() | object() | sorted() |
bin() | enumerate() | input() | oct() | staticmethod() |
bool() | eval() | int() | open() | str() |
breakpoint() | exec() | isinstance() | ord() | sum() |
bytearray() | filter() | issubclass() | pow() | super() |
bytes() | float() | iter() | print() | tuple() |
callable() | format() | len() | property() | type() |
chr() | frozenset() | list() | range() | vars() |
classmethod() | getattr() | locals() | repr() | zip() |
compile() | globals() | map() | reversed() | __import__() |
complex() | hasattr() | max() | round() |
Вбудовані константи
False, True, None, NotImplemented, Ellipsis, __debug__, константи додані модулем site (quit(), exit(), copyright, credits, license)
Вбудовані типи даних
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Python_3._The_standard_type_hierarchy.png/298px-Python_3._The_standard_type_hierarchy.png)
Python має багато вбудованих типів даних. Ось деякі найважливіші[2]:
- None (class NoneType)
- Числа
- цілочисленні
- цілі (class int)
- булеві (class bool)
- дійсні (class float)
- комплексні (class complex).
- цілочисленні
- Послідовності
- незмінні
- рядки (class str)
- кортежі (class tuple)
- байтові рядки (class bytes)
- змінні
- списки (class list)
- байтові масиви (class bytearray)
- множини
- набір (class set)
- незмінний набір (class frozenset)
- відображення
- словники (class dict)
- типи, що викликаються
- функції
- методи
- класи
- Модулі
- незмінні
Вбудовані виключення
Всі вбудовані виключення в мові Python представлені у вигляді класів. Ієрархія вбудованих класів винятків[3]:
- BaseException
- GeneratorExit
- Keyboardinterrupt
- SystemExit
- Exception
- Stopiteration
- Warning (BytesWarning, ResourceWarning, DeprecationWarning, FutureWarning, ImportWarning, PendingDeprecationWarning, RuntimeWarning)
- SyntaxWarning (UnicodeWarning, UserWarning)
- Ar i trЛlet icError (FloatingPointError, OverflowError, ZeroDivisionError)
- AssertionError
- AttributeError
- BufferError
- EnvironmentError
- IOError
- OSError (WindowsError)
- EOFError
- ImportError
- LookupError (IndexError, KeyError)
- MemoryError
- NameError (UnboundLocalError)
- ReferenceError
- RuntimeError (NotimplementedError)
- SyntaxError (IndentationError, TabError)
- SystemError
- TypeError
- ValueError
- UnicodeError (UnicodeDecodeError, UnicodeEncodeError, UnicodeTranslateError)
Модулі
Модулі для обробки тексту
Модулі зі стандартної бібліотеки надають широкий спектр операцій з маніпулювання рядками та обробки тексту:
- string — загальні операції над рядками (перетворення, форматування тощо)
print("Hello my friends".upper()) print("Hello my friends".lower()) print("Hello my friends".swapcase( ))
- re — забезпечує операції зіставлення регулярних виразів (робота з символами '|', '/'або '(' та ін.
- difflib — надає класи та функції для порівняння послідовностей та файлів
- unicodedata — забезпечує доступ до бази даних символів Unicode (UCD)
- textwrap — надає засоби для упакування, заповнення, позиціонування одного або або двох текстових рядків
Модулі для роботи з різними типами даних
Модулі цієї групи надають різноманітні спеціалізовані типи даних, такі як дата і час, масиви фіксованого типу, купи, черги, слабкі посилання, а також так звані абстрактні базові типи з модуля collections:
- datetime — надає класи для обробки часу і дати різними способами, підтримується і стандартний спосіб представлення часу, проте більший акцент зроблено на простоту маніпулювання датою, часом і їх частинами
import datetime datetime_object = datetime.datetime.now() print(datetime_object)
- calendar — дозволяє надрукувати собі календар, а також містить деякі інші корисні функції для роботи з календарями
- collections — надає спеціалізовані типи даних, на основі словників, кортежів, множин, списків.
- array — визначає масиви в Python
from array import array #імпорт модуля a = array.array("i", [10, 20, 30]) #змінній а привласнюється масив for value in a: #прохід по значеннях масиве print(value) #друк значень масиву
- copy — потрібен для повного копіювання об'єкту
Числові та математичні модулі
- numbers — база числових абстрактних класів
- math — математичні функції
- cmath — математичні функції для комплексних чисел
- decimal — десяткові числа з фіксованою крапкою і числа з плаваючою крапкою
- statistics — функції математичної статистики
- fractions — раціональні числа
- random — генерація випадкових чисел
import random random.sample([1, 2, 3, 4, 5], 3)
Модулі для функціонального програмування
Модулі надають функції та класи, які підтримують функціональний стиль програмування:
- itertools — створення інтегрованих функцій для ефективного циклу
- functools – функції високого порядку та операції для виклику об'єктів
- operator – стандартні операції з функціями
Модулі доступу до файлів і директорій
Модулі стосуються дисків і каталогів. Наприклад, існують модулі для зчитування властивостей файлів, маніпулювання шляхами портативним способом і створення тимчасових файлів.
- pathlib — об'єктно-орієнтовані шляхи файлової системи
- os.path — загальні маніпуляції
- fileinput — перебирати рядки з декількох вхідних потоків
- stat — інтерпретація результатів stat ()
- filecmp — порівняння файлів і каталогів
- tempfile — створення тимчасових файлів і каталогів
import tempfile f = tempfile.TemporaryFile() f.write("0"*100) # записується сто символів 0 f.seek(0) # встановлює вказівник на початок файлу print len(f.read()) # читається до кінця файла і обчислюється довжина
- glob — розширення шаблону шляху стилю Unix
- fnmatch — відповідність зразків назв файлів Unix
- linecache — випадковий доступ до рядків тексту
- shutil — файлові операції високого рівня
- macpath — функції маніпуляції шляху Mac OS 9
Збереження даних
Модулі підтримують зберігання даних Python у постійній формі на диску. Модулі pickle і marshal можуть перетворити безліч типів даних Python в потік байтів, а потім відтворити об'єкти з байтів.
- pickle — серіалізація об'єкта Python
- copyreg — реєстрація функцій підтримки консервації
- shelve — збереження об'єкта Python
- marshal — внутрішня серіалізація об'єктів Python
- dbm — інтерфейси для «баз даних» Unix
- sqlite3 — інтерфейс DB-API 2.0 для баз даних SQLite
Стиснення та архівація даних
Модулі підтримують стиснення даних за допомогою алгоритмів zlib, gzip, bzip2 і lzma, а також створення архівів ZIP-та tar-форматів.
- zlib — стиснення, сумісне з gzip
- gzip — підтримка файлів gzip
- bz2 — підтримка стиснення bzip2
- lzma — стиснення з використанням алгоритму LZMA
- zipfile — робота з архівами ZIP
- arfile — читання та запис файлів архіву tar
Формати файлів
Модулі аналізують різні формати файлів, які не пов'язані з мовами розмітки і не пов'язані з електронною поштою.
- csv — читання та запис файлів CSV
- configparser — парсер файлів конфігурації
- etrc — обробка файлів netrc
- xdrlib — кодувати та декодувати дані XDR
- plistlib — створення і розбір файлів Mac OS X.plist
Модулі для взаємодії з операційною системою
Модулі надають інтерфейси для функцій операційної системи, які доступні (майже) у всіх операційних системах, як файли та годинник.
- os — різні інтерфейси операційної системи
import os os.getcwd() #поточна робоча директорія
- io — основні інструменти для роботи з потоками
- time — доступ до опцій часу
- argparse — парсер для параметрів командного рядка, аргументів і під-команд
- getopt — синтаксичний аналізатор стилю C для параметрів командного рядка
- logging — засоби реєстрації для Python
- getpass — введення портативного пароля
- curses — керування терміналами для відображення символьних комірок
- platform — доступ до даних, що визначають базову платформу
- errno — стандартні символи системи errno
- ctypes — бібліотека іноземних функцій для Python
Сервіси періоду виконання
Модулі надають широкий спектр послуг, пов'язаних з інтерпретатором Python та його взаємодією з середовищем.
- sys — специфічні для системи параметри та функції
- sysconfig — надає доступ до інформації про конфігурацію Python
- builtins — вбудовані об'єкти
- __main__ — середовище сценаріїв верхнього рівня
- dataclasses — класи даних
- abc — абстрактні базові класи
- traceback — друк або вилучення відстеження стека та ін.
Модулі для програмних фреймворків
Модулі є рамками, які значною мірою диктують структуру вашої програми. Нині описані тут модулі орієнтовані на написання інтерфейсів командного рядка.
- turtle — «черепашача» графіка
- cmd — підтримка лінійно-орієнтованих командних інтерпретаторів
- shlex — простий лексичний аналіз
Модулі для створення графічного інтерфейсу користувача з Tk
Бібліотека забезпечує надійний і незалежний від платформи віконний інструментарій, доступний програмістам Python, що використовують tkinter-пакет, і його розширення, tkinter.tix і tkinter.ttk.
- tkinter — інтерфейс Python до Tcl / Tk
- tkinter.ttk — Tk тематичні віджети
- tkinter.tix — віджети розширення для Tk
- tkinter.scrolledtext — прокручується відмет для скролингу тексту
Криптографічні сервіси
Модулі реалізують різні алгоритми криптографічного характеру: hashlib — безпечний хеш і дайджести повідомлень; hmac — для перевірки автентичності повідомлень.
Модулі для паралельного програмування (н-д, threading, multiprocessing, subprocess, sched, queue та ін.)
Забезпечують підтримку одночасного виконання коду. Відповідний вибір засобу буде залежати від виконання завдання (пов'язано з процесором та пов'язаним з ним потоком) і бажаним стилем розробки (керована подіями багатозадачність та превентивна багатозадачність).
Модулі для мережевого та міжпроцесового спілкування
Модулі забезпечують механізми комунікації між мережами та взаємодіями між процесами: asyncio, socket, ssl, select, selectors, asyncore, asynchat, ignal, mmap.
Модулі для обробки даних Інтернету
Модулі, які підтримують обробку форматів даних, які зазвичай використовуються в Інтернеті (електронна пошта, медіа файли тощо): email, json, mailcap, mailbox, mimetypes, base64, binhex та ін.
Модулі обробки структурованої розмітки
Python підтримує різноманітні модулі для роботи з різними формами розмітки структурованих даних. Це включає в себе модулі для роботи зі стандартною мовою розмітки (SGML) і мовою розмітки гіпертексту (HTML), а також декілька інтерфейсів для роботи з розширюваною мовою розмітки (XML).
Модулі для підтримки Інтернет-протоколів
Модулі використовують Інтернет-протоколи та підтримку відповідних технологій. Всі вони реалізовані в Python. Більшість цих модулів вимагає наявності системно залежного модуля socket, який зараз підтримується на більшості популярних платформ, наприклад модулі обробки URL-адрес — urllib, модулі підтримки клієнтів різних Інтернет-протоколів — ftplib, poplib, imaplib, smtplib, telnetlib тощо.
Модулі для мультимедійних послуг
Модулі реалізують різні алгоритми або інтерфейси, які в основному корисні для мультимедійних програм. Наприклад, модуль для читання і запис WAV-файлів — wave, перетворення кольорів між системами — colorsys, визначення типу зображення — imghdr тощо.
Модулі для інтернаціоналізації
Модулі допоможуть написати програмне забезпечення, яке не залежить від мови та локалі, надаючи механізми для вибору мови, яка буде використовуватися в програмних повідомленнях, або шляхом адаптації виводу відповідності до місцевих умов. Наприклад, gettext та locale.
Модулі для засобів розробки
Модулі допоможуть записати програмне забезпечення. Наприклад, модуль pydoc генерує документацію на основі вмісту модуля. doctest та unittest модулі містять фреймворки для написання модульних тестів, які автоматично здійснюють код і перевіряють, що здійснюється очікуваний вихід.
Модулі для відладки та профілювання
Ці бібліотеки допомагають у розробці Python: відладчик дає змогу проходити код, аналізувати стекові кадри та встановлювати точки зупину тощо, а профайлери виконують код і дають детальний розклад часу виконання, дозволяючи визначити вузькі місця у програмах.
- bdb — рамка відладчика
- faulthandler — дамп трасування Python
- pdb — налагоджувач Python
- timeit — вимірювання часу виконання невеликих фрагментів коду
- trace — трасування або відстеження виконання оператора Python
- tracemalloc — виділення пам'яті трасування
Модулі для публікації та установлення програмного забезпечення
Модулі допоможуть вам опублікувати та встановити програмне забезпечення Python.
- distutils — створення та встановлення модулів Python
- surepip — початкове завантаження програми установки
- venv — створення віртуальних середовищ
- zipapp — управління виконуваними архівами Python zip
Модулі для імпорту модулів
Модулі надають нові способи імпортування інших модулів Python для налаштування процесу імпорту.
- zipimport — імпорт модулів з архівів Zip
- pkgutil — утиліта розширення пакету
- modulefinder — знайти модулі, використовувані сценарієм
- runpy — пошук і виконання модулів Python
- importlib — реалізація імпорту
Примітки
- п
- о
- р
- CircuitPython[en]
- CLPython
- CPython
- Cython
- IronPython
- Jython
- MicroPython
- Psyco
- PyPy
- Python for S60
- Stackless Python
- Unladen Swallow
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Python.svg/70px-Python.svg.png)
- Boa
- Eric
- IDLE
- Ninja-IDE
- PyCharm
- PyDev
- PyScripter
- Visual Studio
- Spyder
- SPE
- Wing IDE
- інші…
- Стандартна бібліотека мови Python