← Назад к курсу

Описание 30 наиболее часто используемых встроенных модулей Python с примерами

1. os - Взаимодействие с операционной системой

import os

# Работа с файлами и директориями
print(os.getcwd())  # текущая директория
os.makedirs('new_folder', exist_ok=True)
print(os.listdir('.'))  # список файлов

# Переменные окружения
print(os.environ.get('PATH'))

2. sys - Параметры и функции системы

import sys

print(sys.version)  # версия Python
print(sys.argv)     # аргументы командной строки
sys.exit(0)         # выход из программы

3. math - Математические функции

import math

print(math.sqrt(16))      # 4.0
print(math.sin(math.pi/2)) # 1.0
print(math.ceil(4.2))     # 5
print(math.factorial(5))  # 120

4. datetime - Работа с датой и временем

from datetime import datetime, date, timedelta

now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))

today = date.today()
yesterday = today - timedelta(days=1)

5. json - Работа с JSON

import json

data = {'name': 'John', 'age': 30}
json_str = json.dumps(data)  # в строку
print(json_str)

parsed = json.loads(json_str)  # из строки
print(parsed['name'])

6. re - Регулярные выражения

import re

text = "Email: test@example.com"
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
match = re.search(pattern, text)
if match:
    print(match.group())  # test@example.com

7. collections - Специальные контейнерные типы

from collections import Counter, defaultdict, deque

# Counter
counter = Counter(['a', 'b', 'a', 'c'])
print(counter)  # Counter({'a': 2, 'b': 1, 'c': 1})

# defaultdict
d = defaultdict(list)
d['key'].append('value')

# deque
queue = deque([1, 2, 3])
queue.append(4)
queue.popleft()

8. itertools - Итераторные функции

import itertools

# Бесконечный итератор
for i in itertools.count(10):
    if i > 15:
        break
    print(i)

# Комбинации
print(list(itertools.combinations('ABC', 2)))

9. random - Генерация случайных чисел

import random

print(random.random())          # случайное число от 0 до 1
print(random.randint(1, 10))    # случайное целое
print(random.choice(['a', 'b', 'c']))  # случайный элемент

# Перемешивание
items = [1, 2, 3, 4]
random.shuffle(items)

10. string - Строковые операции

import string

print(string.ascii_letters)
print(string.digits)
print(string.punctuation)

template = string.Template('Hello, $name!')
print(template.substitute(name='World'))

11. functools - Функции высшего порядка

from functools import lru_cache, partial

# Кэширование
@lru_cache(maxsize=32)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# Частичное применение
def multiply(x, y):
    return x * y

double = partial(multiply, 2)
print(double(5))  # 10

12. hashlib - Хеширование

import hashlib

# MD5
md5_hash = hashlib.md5(b"Hello World").hexdigest()

# SHA256
sha_hash = hashlib.sha256(b"Hello World").hexdigest()
print(sha_hash)

13. pathlib - Современная работа с путями (Python 3.4+)

from pathlib import Path

p = Path('/home/user/documents')
print(p.parent)  # /home/user
print(p.name)    # documents
print(p.suffix)  # расширение файла

# Создание файла
(p / 'new_file.txt').touch()

14. csv - Работа с CSV файлами

import csv

# Запись
with open('data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['Name', 'Age'])
    writer.writerow(['John', 30])

# Чтение
with open('data.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

15. argparse - Парсинг аргументов командной строки

import argparse

parser = argparse.ArgumentParser(description='Пример скрипта')
parser.add_argument('--name', help='Ваше имя', required=True)
parser.add_argument('--age', type=int, help='Ваш возраст')
args = parser.parse_args()

print(f"Привет, {args.name}!")

16. logging - Логирование

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info('Информационное сообщение')
logger.warning('Предупреждение')
logger.error('Ошибка')

17. subprocess - Запуск подпроцессов

import subprocess

# Выполнение команды
result = subprocess.run(['ls', '-la'], capture_output=True, text=True)
print(result.stdout)

# Получение вывода
output = subprocess.check_output(['echo', 'Hello World'])

18. typing - Аннотации типов (Python 3.5+)

from typing import List, Dict, Optional, Union

def process_items(items: List[str]) -> Dict[str, int]:
    return {item: len(item) for item in items}

def get_user(user_id: int) -> Optional[Dict]:
    return None if user_id == 0 else {"id": user_id}

19. unittest - Модульное тестирование

import unittest

class TestMath(unittest.TestCase):
    def test_add(self):
        self.assertEqual(1 + 1, 2)
    
    def test_multiply(self):
        self.assertEqual(2 * 3, 6)

if __name__ == '__main__':
    unittest.main()

20. decimal - Десятичная арифметика

from decimal import Decimal, getcontext

getcontext().prec = 6  # точность
result = Decimal('1.1') + Decimal('2.2')
print(result)  # 3.3 (без ошибок округления)

21. collections.abc - Абстрактные базовые классы

from collections.abc import Sequence, Mapping, Iterable

def process_sequence(seq: Sequence):
    return len(seq)

def process_mapping(mapping: Mapping):
    return mapping.keys()

22. statistics - Статистические функции

import statistics

data = [1, 2, 3, 4, 5]
print(statistics.mean(data))     # среднее
print(statistics.median(data))   # медиана
print(statistics.stdev(data))    # стандартное отклонение

23. inspect - Интроспекция кода

import inspect

def example_func(x: int, y: str = "hello") -> bool:
    return True

print(inspect.signature(example_func))
print(inspect.getsource(example_func))

24. pickle - Сериализация объектов

import pickle

data = {'a': [1, 2, 3], 'b': True}

# Сериализация
with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)

# Десериализация
with open('data.pkl', 'rb') as f:
    loaded = pickle.load(f)

25. contextlib - Утилиты для менеджеров контекста

from contextlib import contextmanager

@contextmanager
def temporary_file():
    import tempfile
    f = tempfile.NamedTemporaryFile(delete=False)
    try:
        yield f
    finally:
        f.close()
        os.unlink(f.name)

with temporary_file() as f:
    f.write(b'test data')

26. copy - Поверхностное и глубокое копирование

import copy

original = [[1, 2], [3, 4]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

27. enum - Перечисления

from enum import Enum, auto

class Color(Enum):
    RED = auto()
    GREEN = auto()
    BLUE = auto()

print(Color.RED.value)  # 1
print(list(Color))      # [<Color.RED>, ...]

28. heapq - Алгоритм кучи

import heapq

data = [5, 7, 9, 1, 3]
heapq.heapify(data)  # превращает список в кучу

heapq.heappush(data, 4)
print(heapq.heappop(data))  # 1 (минимальный элемент)

29. socket - Сетевое взаимодействие

import socket

# Клиент
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(('example.com', 80))
    s.sendall(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')
    data = s.recv(1024)

30. threading - Многопоточность

import threading
import time

def worker(num):
    print(f"Поток {num} начал работу")
    time.sleep(1)
    print(f"Поток {num} закончил работу")

threads = []
for i in range(3):
    t = threading.Thread(target=worker, args=(i,))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

Дополнительные важные модули:

collections.namedtuple - Именованные кортежи

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(10, 20)
print(p.x, p.y)  # 10 20

pprint - Красивый вывод

from pprint import pprint

complex_dict = {'a': [1, 2, 3], 'b': {'c': 4, 'd': 5}}
pprint(complex_dict, indent=2)

fractions - Рациональные числа

from fractions import Fraction

f1 = Fraction(1, 3)  # 1/3
f2 = Fraction(1, 6)  # 1/6
print(f1 + f2)       # 1/2

bisect - Бинарный поиск

import bisect

sorted_list = [1, 3, 5, 7, 9]
bisect.insort(sorted_list, 6)
print(sorted_list)  # [1, 3, 5, 6, 7, 9]

Эти модули составляют основу стандартной библиотеки Python и покрывают большинство повседневных задач программирования. Каждый модуль хорошо документирован в официальной документации Python, где можно найти больше примеров и подробное описание всех функций.