⚡ Краткий справочник
try/except — перехват исключений.
except (A, B) as e: — несколько типов и доступ к ошибке.
else — код при успехе; finally — код в любом случае.
raise ValueError("msg") — возбуждение исключения.
logging.basicConfig(level=logging.INFO) — настройка логирования.
os.getcwd(), os.listdir("."), os.path.join(...) — работа с путями.
sys.argv — аргументы командной строки.
Синтаксис обработки исключений
| Конструкция | Описание | Пример |
try: | Код, который может вызвать исключение | try: 1 / 0 |
except Type: | Обработчик конкретного исключения | except ZeroDivisionError: |
except (T1, T2): | Обработка нескольких типов | except (ValueError, TypeError): |
except Type as e: | Получить объект исключения | except ValueError as e: print(e) |
else: | Выполняется, если исключения не было | else: print("OK") |
finally: | Выполняется всегда | finally: print("end") |
raise Type("msg") | Возбудить исключение вручную | raise ValueError("bad") |
Настройка logging
| Параметр / плейсхолдер | Описание |
level=logging.DEBUG | Уровень логирования: DEBUG, INFO, WARNING, ERROR, CRITICAL |
filename="app.log" | Имя файла для записи |
format="..." | Формат строки лога |
%(asctime)s | Время |
%(levelname)s | Уровень |
%(filename)s | Имя файла |
%(lineno)d | Номер строки |
%(message)s | Текст сообщения |
Основные функции os
| Функция | Назначение |
os.getcwd() | Текущая рабочая директория |
os.chdir(path) | Сменить текущую директорию |
os.listdir(path) | Список файлов и папок в директории |
os.mkdir(path) | Создать одну директорию |
os.makedirs(path, exist_ok=True) | Создать вложенные директории |
os.path.exists(path) | Проверить существование пути |
os.path.isfile(path) | Является ли путь файлом |
os.path.isdir(path) | Является ли путь директорией |
os.path.abspath(path) | Абсолютный путь |
os.path.basename(path) | Имя файла или папки |
os.path.dirname(path) | Директория без имени файла |
os.path.split(path) | Разделить путь на директорию и файл |
os.path.join(a, b, ...) | Соединить компоненты пути |
os.walk(path) | Рекурсивный обход директории |
os.rename(src, dst) | Переименовать или переместить файл |
Модуль sys
| Функция / переменная | Назначение |
sys.argv | Список аргументов командной строки |
sys.exit(code) | Завершить программу с кодом |
sys.path | Список путей для поиска модулей |
Частые паттерны
# 1. Запрос корректного числа
while True:
try:
value = float(input("Введите число: "))
except ValueError:
print("Некорректное число, попробуйте снова.")
else:
break
# 2. Безопасное деление с логированием
import logging
logging.basicConfig(filename="errors.log", level=logging.ERROR)
try:
result = 10 / 0
except ZeroDivisionError as e:
logging.error(f"Ошибка: {e}")
# 3. Рекурсивный поиск файлов по расширению
import os
for root, dirs, files in os.walk("."):
for file in files:
if file.endswith(".txt"):
print(os.path.join(root, file))
# 4. Аргументы командной строки
import sys
if len(sys.argv) > 1:
print(f"Первый аргумент: {sys.argv[1]}")