Глава 15 · Python и файлы
Переименование, копирование, удаление
Эти операции по-настоящему меняют файловую систему — и не всегда обратимы.
Переименование
rename.py
from pathlib import Path
old_path = Path("chernovik.txt")
old_path.rename("gotovo.txt")
Файловые операции могут завершиться ошибкой
Переименование, копирование и удаление — это обращения к операционной системе, а не гарантированно успешные действия Python. Они могут завершиться ошибкой по многим причинам файловой системы или прав доступа (раздел 15.22) — не считайте их непременно безотказными.
replace() — для «заменить целевой файл»
replace.py
from pathlib import Path
novy_fajl = Path("save_new.json")
tselevoy_fajl = Path("save.json")
novy_fajl.replace(tselevoy_fajl) # заменяет целевой файл, если он уже существует
Мы вернёмся к этому в разделе 15.28 — он лежит в основе безопасного паттерна сохранения «сначала во временный файл, потом заменить основной».
Копирование — shutil
shutil_copy.py
import shutil
shutil.copy("save.json", "save_backup.json")
pathlib и shutil дополняют друг друга
pathlib отлично работает с самими путями, а высокоуровневое копирование файлов обычно берёт на себя модуль стандартной библиотеки shutil (shutil.copy, shutil.copy2, shutil.move).Удаление — с максимальной осторожностью
Удаление — разрушительная операция
path.unlink() удаляет файл без возможности отмены средствами самой программы. path.rmdir() удаляет только пустую папку. В этом курсе мы никогда не используем рекурсивное удаление (shutil.rmtree) как учебное упражнение — и все примеры удаления в практике работают только с файлами, созданными самой практикой в её собственной рабочей папке, никогда с произвольными путями пользователя.unlink_bezopasno.py
from pathlib import Path
vremenny_fajl = Path("chernovik_kopiya.txt")
if vremenny_fajl.exists():
vremenny_fajl.unlink()
Практика: переименование, копирование, удаление
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки