Стандартна бібліотека

Стандартна бібліотека#

uk-flagанглійська: Standard Library

Стандартна бібліотека Python містить величезну кількість корисних модулів і є частиною кожної стандартної інсталяції Python. Важливо ознайомитися зі стандартною бібліотекою Python, оскільки багато проблем можна швидко вирішити, якщо ви знайомі з можливостями цих бібліотек.

Ми розглянемо деякі з часто використовуваних модулів у цій бібліотеці. Ви можете знайти повну інформацію про всі модулі стандартної бібліотеки Python у розділі «Довідник бібліотеки»(англ.“Library Reference”) документації, яка постачається разом із інсталяцією Python.

Давайте розглянемо кілька корисних модулів.

Попередження

якщо ви вважаєте теми цього розділу занадто складними, ви можете пропустити цей розділ. Однак я настійно рекомендую повернутися до цього розділу, коли вам стане зручніше програмувати на Python.

модуль sys#

uk-flagанглійська: sys module)

Модуль sys містить функціональність, характерну для системи. Ми вже бачили, що список sys.argv містить аргументи командного рядка.

Припустімо, ми хочемо перевірити версію використовуваного програмного забезпечення Python, модуль sys надає нам цю інформацію.

>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=6, micro=0, releaselevel='final', serial=0)
>>> sys.version_info.major == 3
True

Як це працює

Модуль sys має кортеж version_info, який надає нам інформацію про версію. Перший запис (major=3) — основна версія. Ми можемо отримати цю інформацію, щоб використати її.

Модуль logging#

uk-flagанглійська: logging module

Уявіть ситуацію, коли необхідно зберегти деякі налагоджувальні або інші важливі повідомлення де-небудь,щоб мати можливість пізніше перевірити, чи ваша програма працює так, як ви цього очікували? Як саме «зберігати десь» ці повідомлення ? Цього можна досягти за допомогою модуля logging.

код python stdlib_logging_ukr.py

import os
import platform
import logging

if platform.platform().startswith('Windows'):
    logging_file = os.path.join(os.getenv('HOMEDRIVE'),
                                os.getenv('HOMEPATH'),
                                'test.log')
else:
    logging_file = os.path.join(os.getenv('HOME'),
                                'test.log')

print("Logging to", logging_file)

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s : %(levelname)s : %(message)s',
    filename=logging_file,
    filemode='w',
)

logging.debug("Початок програми")
logging.info("Якісь дії")
logging.warning("Програма вмирає")

Висновок:

$ python stdlib_logging_ukr.py
Logging to /Users/swa/test.log

$ cat /Users/swa/test.log
2014-03-29 09:27:36,660 : DEBUG : Початок програми
2014-03-29 09:27:36,660 : INFO : Якісь дії
2014-03-29 09:27:36,660 : WARNING : Програма вмирає

Щоб переглянути та вивчити файл test.log, просто відкрийте його в будь-якому текстовому редакторі. Якщо вам зручно працювати в терміналі, у вашій операційній системі зазвичай є команда для відображення текстового файлу. У Linux та MacOS ця команда називається cat.

Screenshot_loggin.png

Як це працює

Ми використовуємо три модулі зі стандартної бібліотеки: модуль os для взаємодії з операційною системою, модуль platform для отримання інформації про платформу, тобто операційну систему, і модуль logging для логування інформації (англ.» to log information»).

Спочатку ми перевіряємо, яку операційну систему ми використовуємо, перевіряючи рядок, який повертає функція platform.platform() (для отримання додаткової інформації див. import platform; help (platform)). Якщо це Windows, ми визначаємо home drive (диск) ,який містить домашню папку та назву файлу, де ми хочемо зберігати інформацію. Зібравши ці три частини разом, ми отримаємо повне розташування файлу. Для інших платформ нам потрібно знати лише домашню папку користувача, і ми отримаємо повний шлях до файлу.

Ми використовуємо функцію os.path.join(), щоб поєднати ці три частини шляху. Причина використання спеціальної функції, а не простого додавання рядків разом, полягає в тому, що ця функція гарантує, що повний шлях відповідає формату, очікуваному операційною системою.

Примітка : метод join(), який ми використовуємо тут є частиною модуля os,він відрізняється від рядкового методу join(), який ми використовували в інших частинах цієї книги.

Ми налаштовуємо модуль logging для запису всіх повідомлень у певному форматі у вказаний файл.

Нарешті, ми можемо виводити повідомлення, призначені для налагодження, інформування, попередження та навіть критичні повідомлення. Після запуску програми ми можемо перевірити цей файл і знати, що сталося в програмі, навіть якщо користувач, який запускає програму, не показує жодної інформації.

Модуль серії тижня#

uk-flagанглійська: Module of the Week Series

У стандартній бібліотеці, як-от налагодження (англ.“debugging”), обробка параметрів командного рядка(англ.“handling command line options”), регулярні вирази(англ.“regular expressions”) є ще багато чого для вивчення.

Найкращий спосіб глибше вивчити стандартну бібліотеку — це прочитати чудову серію Doug Hellmann “Модуль тижня” (англ.“Python Module of the Week”) (також доступна як книга)або Офіційну документацію Python.

Резюме#

Ми дослідили деякі функції багатьох модулів стандартної бібліотеки Python. Настійно рекомендуємо переглянути документацію стандартної бібліотеки Python, щоб отримати уявлення про всі доступні модулі.

Далі ми розглянемо різні аспекти Python, які зроблять наш огляд Python більш повним.