Функция rename() модуля os в Python.
Функция rename() модуля os переименовывает файл или каталог с именем src в dst . Если имя dst уже существует, то операция os.rename() , в ряде случаев, может завершится с подклассом исключения OSError .
В Windows, если dst уже существует, всегда возникает ошибка FileExistsError .
В Unix, если src — это файл, а dst — это каталог или наоборот, то поднимаются исключения IsADirectoryError или NotADirectoryError соответственно.
Если оба являются каталогами и dst пуст, то dst будет заменен без уведомления.Если dst является непустым каталогом, возникает OSError .Если оба являются файлами, то dst будет заменен без уведомления, если у пользователя есть разрешение.
Операция может завершиться с ошибкой на некоторых разновидностях Unix, если src и dst находятся на разных файловых системах. В случае успеха, переименование будет атомарной операцией, это требование POSIX.
Работа с файлами в Python с помощью модуля OS
Обработка файлов в Python с помощью модуля os включает создание, переименование, перемещение, удаление файлов и папок, а также получение списка всех файлов и каталогов и многое другое.
В индустрии программного обеспечения большинство программ тем или иным образом обрабатывают файлы: создают их, переименовывают, перемещают и так далее. Любой программист должен обладать таким навыком. С этим руководством вы научитесь использовать модуль os в Python для проведения операций над файлами и каталогами вне зависимости от используемой операционной системы.
Важно знать, что модуль os используется не только для работы с файлами. Он включает массу методов и инструментов для других операций: обработки переменных среды, управления системными процессами, а также аргументы командной строки и даже расширенные атрибуты файлов, которые есть только в Linux.
Модуль встроенный, поэтому для работы с ним не нужно ничего устанавливать.
Вывод текущей директории
Для получения текущего рабочего каталога используется os.getcwd() :
os.getcwd() возвращает строку в Юникоде, представляющую текущий рабочий каталог. Вот пример вывода:
Создание папки
Для создания папки/каталога в любой операционной системе нужна следующая команда:
После ее выполнения в текущем рабочем каталоге тут же появится новая папка с названием «folder».
Если запустить ее еще раз, будет вызвана ошибка FileExistsError , потому что такая папка уже есть. Для решения проблемы нужно запускать команду только в том случае, если каталога с таким же именем нет. Этого можно добиться следующим образом:
Функция os.path.isdir() вернет True , если переданное имя ссылается на существующий каталог.
Изменение директории
Менять директории довольно просто. Проделаем это с только что созданным:
Еще раз выведем рабочий каталог:
Создание вложенных папок
Предположим, вы хотите создать не только одну папку, но и несколько вложенных:
Это создаст три папки рекурсивно, как показано на следующем изображении:

Создание файлов
Для создания файлов в Python модули не нужны. Можно использовать встроенную функцию open() . Она принимает название файла, который необходимо создать в качестве первого параметра и желаемый режим открытия — как второй:
w значит write (запись), a — это appending (добавление данных к уже существующему файлу), а r — reading (чтение). Больше о режимах открытия можно почитать здесь.
Переименование файлов
С помощью модуля os достаточно просто переименовать файл. Поменяем название созданного в прошлом шаге.
Управление каталогами и файлами в Python
В этом руководстве вы узнаете об управлении файлами и каталогами в Python, т.е. о создании каталога, его переименовании, перечислении всех каталогов и работе с ними.
Каталог в Python
Если в нашей программе Python требуется обрабатывать большое количество файлов, мы можем расположить наш код в разных каталогах, чтобы упростить управление.
Каталог или папка ‒ это набор файлов и подкаталогов. В Python есть модуль os, который предоставляет нам множество полезных методов для работы с каталогами (а также с файлами).
Получить текущий каталог
Мы можем получить текущий рабочий каталог с помощью метода getcwd() модуля os.
Этот метод возвращает текущий рабочий каталог в виде строки. Мы также можем использовать метод getcwdb(), чтобы получить его как байтовый объект.
Дополнительная обратная косая черта подразумевает escape-последовательность. Функция print() отрендерит это правильно.
Смена каталога
Мы можем изменить текущий рабочий каталог с помощью метода chdir().
Новый путь, который мы хотим изменить, должен быть передан этому методу в виде строки. Мы можем использовать как прямую косую черту /, так и обратную косую черту \ для разделения элементов пути.
При использовании обратной косой черты безопаснее использовать escape-последовательность.
Как получить список каталогов и файлов в Python?
Все файлы и подкаталоги внутри каталога можно получить с помощью метода listdir().
Этот метод принимает путь и возвращает список подкаталогов и файлов по этому пути. Если путь не указан, возвращается список подкаталогов и файлов из текущего рабочего каталога.
Создание нового каталога
Мы можем создать новый каталог с помощью метода mkdir().
Этот метод принимает путь к новому каталогу. Если полный путь не указан, новый каталог создается в текущем рабочем каталоге.
Переименование каталога или файла
Метод rename() может переименовать каталог или файл.
Для переименования любого каталога или файла метод принимает два основных аргумента: старое имя в качестве первого аргумента и новое имя в качестве второго аргумента.
Удаление
Файл можно удалить (удалить) с помощью метода remove().
Точно так же метод rmdir() удаляет пустой каталог.
Примечание: Метод rmdir() может удалять только пустые каталоги.
Чтобы удалить непустой каталог, мы можем использовать метод rmtree() внутри модуля shutil.