📜 Голый except: как в учебнике
В исходном материале встречаются простые конструкции try/except без указания типа исключения:
# старый стиль
number = input("Введите число: ")
try:
number = int(number)
except:
print("Ошибка")
Такой код корректен синтаксически, но перехватывает слишком много: KeyboardInterrupt, SystemExit и другие системные исключения.
✅ Современный подход: конкретные исключения
# modern_except.py
try:
number = int(input("Введите число: "))
except ValueError:
print("Ошибка: нужно ввести целое число.")
- Обработчик ловит только ожидаемую ошибку.
- Программа нормально реагирует на
Ctrl+Cиsys.exit(). - Код легче отлаживать.
📜 os.path: строковая работа с путями
Модуль os.path решает задачу, но оперирует строками:
# old_paths.py
import os
base_dir = "/home/user"
filename = "data.txt"
full_path = os.path.join(base_dir, filename)
if os.path.exists(full_path):
with open(full_path, "r", encoding="utf-8") as file:
print(file.read())
✅ pathlib: объектно-ориентированные пути
# modern_paths.py
from pathlib import Path
base_dir = Path("/home/user")
file_path = base_dir / "data.txt"
if file_path.exists():
print(file_path.read_text(encoding="utf-8"))
- Оператор
/соединяет компоненты пути. - Методы
exists,read_text,mkdirвстроены в объект. - Код читается короче и не зависит от операционной системы.
⚠️ Проверить по документации: модуль
pathlib не входит в исходную лекцию, но является современной рекомендуемой альтернативой os.path в Python 3.
🕰️ Когда старый подход ещё встречается
Учебные материалы и быстрые скрипты часто используют os.path и простые try/except. Это нормально для демонстрации, но в реальных проектах стоит отдавать предпочтение pathlib и конкретным исключениям.