Стандартна бібліотека мови 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]:

  1. BaseException
    1. GeneratorExit
    2. Keyboardinterrupt
    3. SystemExit
    4. Exception
      • Stopiteration
      • Warning (BytesWarning, ResourceWarning, DeprecationWarning, FutureWarning, ImportWarning, PendingDeprecationWarning, RuntimeWarning)
  2. SyntaxWarning (UnicodeWarning, UserWarning)
    1. Ar i trЛlet icError (FloatingPointError, OverflowError, ZeroDivisionError)
    2. AssertionError
    3. AttributeError
    4. BufferError
    5. EnvironmentError
      • IOError
      • OSError (WindowsError)
    6. EOFError
    7. ImportError
    8. LookupError (IndexError, KeyError)
    9. MemoryError
    10. NameError (UnboundLocalError)
    11. ReferenceError
    12. RuntimeError (NotimplementedError)
    13. SyntaxError (IndentationError, TabError)
    14. SystemError
    15. TypeError
    16. 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 — потрібен для повного копіювання об'єкту

Числові та математичні модулі[ред. | ред. код]

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 — реалізація імпорту

Примітки[ред. | ред. код]

  1. Built-in Functions — Python 3.7.2 documentation. docs.python.org. Процитовано 31 січня 2019.
  2. 3.2 The standard type hierarchy. docs.python.org. Процитовано 31 січня 2019.
  3. Яковенко, А. (2018). Основи програмування. Python. Частина 1. Київ: КПІ ім. Ігоря Сікорського. с. 195.