← Назад к курсу
Описание 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, где можно найти больше примеров и подробное описание всех функций.