Стандартна бібліотека мови 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)
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 — простий лексичний аналіз
Бібліотека забезпечує надійний і незалежний від платформи віконний інструментарій, доступний програмістам 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 — реалізація імпорту
- ↑ Built-in Functions — Python 3.7.2 documentation. docs.python.org. Процитовано 31 січня 2019.
- ↑ 3.2 The standard type hierarchy. docs.python.org. Процитовано 31 січня 2019.
- ↑ Яковенко, А. (2018). Основи програмування. Python. Частина 1. Київ: КПІ ім. Ігоря Сікорського. с. 195.