Переименовать или заменить файл (каталог) средствами pathlib
Описанные ниже методы позволяют переименовать/заменить файл или каталог средствами модуля pathlib . Данные методы принадлежат экземпляру, созданному из класса Path() .
Так как класс pathlib.Path() наследуется от класса pathlib.PurePath() , следовательно он поддерживает все операции по манипуляции с путями файловой системы.
Смотрите другие методы и свойства, доступные экземпляру класса Path() модуля pathlib .
Содержание:
- Переименовать файл (каталог)
- Заменить файл (каталог)
Path.rename(target) :
Метод Path.rename() переименует файл или каталог пути path в указанную цель target . Значение target может быть либо строкой, либо другим объектом пути.
- С версии Python-3.8 метод Path.rename() вернет новый экземпляр pathlib.Path() , содержащий новый путь.
- Если target является объектом пути, то его можно использовать для дальнейших манипуляций файлом с новым именем.
- В Unix, если target существует и является файлом, то он будет автоматически заменен, если у пользователя есть разрешение.
>>> from pathlib import Path >>> p = Path('foo') >>> p.open('w').write('some text') # 9 >>> target = Path('bar') >>> p.rename(target) >>> target.open().read() # 'some text' >>> target.unlink()
Path.replace(target) :
Метод Path.replace() переименует файл или каталог пути path в указанную цель target . Значение target может быть либо строкой, либо другим объектом пути.
- С версии Python-3.8 метод Path.rename() вернет новый экземпляр pathlib.Path() , содержащий новый путь.
- Если target является объектом пути, то его можно использовать для дальнейших манипуляций файлом с новым именем.
- Если target указывает на существующий файл или каталог, то он будет безоговорочно заменен.
>>> p = Path('myfile.txt') >>> p.write_text('This is short text') 18 >>> p.replace('other-file.ext') # Поведение метода до версии Python-3.8 >>> p.is_file() # False >>> p # PosixPath('myfile.txt') >>> p = Path('other-file.ext') >>> p.read_text() # 'This is short text' >>> p.unlink()
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Класс pathlib.PurePath() и его подклассы
- Класс pathlib.Path() и его подклассы
- Манипуляции с путями файловой системы средствами pathlib
- Проверить наличие файла/каталога/ссылки и т.д. средствами pathlib
- Открытие файла, чтение и запись информации средствами pathlib
- Определение положения в файловой системе средствами pathlib
- Список файлов в папке/каталоге по шаблону средствами pathlib
- Создание/удаление файла/каталога или ссылки средствами pathlib
- Получение информации о файле/каталоге средствами pathlib
- Изменение режима доступа к файлу или каталогу средствами pathlib
- Переименование/замена файла или каталога средствами pathlib
- Преобразование объекта пути pathlib в строку
- Метод walk() модуля pathlib, рекурсивный обход каталога
- Сравнение pathlib с модулями os и os.path
Как переименовать файл в Python 1 мин для чтения


Добавить в избранное

Мы можем переименовывать файлы в терминале Linux, используя разные подходы, один из подходов — использование Python, который обсуждается в этой статье. Мы не можем писать код Python прямо в терминале, мы создаем отдельный файл в текстовом редакторе. «rename» — это одна из функций операционной системы, поэтому для этой цели мы будем использовать модуль ОС в Python.
Чтобы переименовать файл с помощью модуля ОС Python, следуйте процедуре, приведенной ниже:
Переименовать файл в Python с помощью модуля ОС в Ubuntu
- Файл должен существовать ранее
- Любая версия Python должна быть установлена в вашей системе Linux.
Модуль ОС Python позволяет выполнять различные операции, связанные с операционной системой. Переименование файла также является одной из операций операционной системы, которую можно выполнить с помощью функции модуля ОС Python os.rename().
Теперь выполните следующую процедуру, чтобы изменить имя файла с помощью модуля ОС Python:
Создание файла в Python: сначала вам нужно создать файл Python с помощью редактора nano, например, мы создали файл Python_file.py с помощью указанной ниже команды:
$ nano python_file.py
Вы можете установить имя файла по вашему выбору.
Использование функции «os.rename» для переименования файла
Чтобы переименовать файл в текущем каталоге: Указанный ниже синтаксис функции «os.rename ()» будет использоваться для переименования файла в текущем каталоге:
$ os.rename("source file", "destination file")
- исходный файл : старое имя файла
- целевой файл : новое имя файла
Теперь напишите указанный ниже код в Python_file, чтобы переименовать «old_andreyex.txt» в «new_andreyex.txt» в текущем каталоге:
«import os» используется для импорта модуля ОС в программу:
import os os.rename("old_andreyex.txt","new_andreyex.txt")
Нажмите «ctrl + s», чтобы сохранить файл, и «ctrl + x», чтобы выйти из файла.
Читать Как использовать теги git?
Теперь, чтобы выполнить файл, запустите указанную ниже команду, я использую Python3 для выполнения Python_file.py, поскольку Python3 предварительно установлен в системе Ubuntu:
$ python3 python_file.py
И команда ls используется для вывода списка файлов каталога, чтобы проверить, существует ли файл, который нужно переименовать, или нет.
Теперь, чтобы убедиться, что файл переименован или нет, снова перечислите файлы текущего рабочего каталога.
Чтобы переименовать файл в каталоге отдельно от текущего каталога: Для переименования файла будет использоваться указанный ниже синтаксис функции «os.rename()»:
$ os.rename("source file", "destination file")
- исходный файл: путь к файлу + старое имя файла
- целевой файл: путь к файлу + измененное/новое имя файла
Теперь напишите указанный ниже код в Python_file.py, чтобы переименовать «old_andreyex.txt» в «new_andreyex.txt» в каталоге рабочего стола:
import os os.rename("/home/masterand/Desktop/old_andreyex.txt","/home/masterand/Desktop/new_lin uxhint.txt")
Нажмите « ctrl + s », чтобы сохранить файл, и « ctrl + x », чтобы выйти из файла.
Используйте команду ls для вывода списка файлов каталога рабочего стола, чтобы проверить, существует ли файл, который нужно переименовать, или нет.
Теперь, чтобы убедиться, что файл переименован или нет, снова перечислите файлы каталога Desktop.
Чтобы переименовать несколько файлов: мы также можем изменить имя нескольких файлов одновременно. Например, у меня в каталоге рабочего стола есть три файла: file1, file2, file3, и мы хотим добавить префикс «andreyex_» ко всем трем именам файлов, а затем запустить указанный ниже код в «Python_file.py».
import os for textfile in os.listdir("/home/masterand/Desktop"): os.rename(textfile,f"/home/masterand/Desktop/andreyex_")
Вы можете изменить команду в соответствии с вашими требованиями; вы можете выбрать имена файлов и каталог, в котором они существуют, по вашему выбору.
Заключение:
Функция модуля ОС Python под названием os.rename() используется для переименования файлов с помощью Python. Мы можем переименовывать файлы, используя разные методы, но в этой статье мы обсудили, как переименовывать файлы в текущем каталоге, кроме текущего каталога, и как переименовывать несколько файлов с помощью модуля Python OS. Если вы программист на Python и хотите переименовать файл/файлы с помощью Python, эта статья наверняка вам поможет.
Функция 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.
Аргументы src и dst могут принимать объекты, представляющие путь файловой системы, такие как pathlib.PurePath .
Функция os.rename() может поддерживать указание src_dir_fd и/или dst_dir_fd для предоставления путей относительно дескриптора каталога.
Если необходимо кросс-платформенное переименование, то используйте функцию os.replace() .
Примеры использования:
>>> import os >>> scr_dir, dst_dir = 'test_dir', 'rename_dir' >>> os.mkdir(scr_dir, 0o774) # переименовывание >>> os.rename(scr_dir, dst_dir) >>> os.path.isdir(dst_dir) # True >>> os.rmdir(dst_dir) >>> scr_f, dst_f = 'test_file.txt', 'rename_file.txt' # создадим файл >>> fp = open(scr_f, 'w') >>> fp.write('data string') >>> fp.close() # переименовывание >>> os.rename(scr_f, dst_f) >>> os.path.isfile(dst_f) # True >>> os.unlink(dst_f)
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Управление переменной средой окружения системы
- Представление пути в файловой системе
- Извлечение/установка uid, gid и pid процесса
- Наследование файловых дескрипторов
- Создание дескриптора файла, чтение, запись и его закрытие
- Функция listdir() модуля os
- Функция walk() модуля os
- Функция scandir() модуля os
- Объект DirEntry() модуля os
- Функция stat() модуля os
- Объект stat_result, результаты выполнения os.stat()
- Функция lstat() модуля os
- Функция access() модуля os
- Функция chdir() модуля os
- Функция chmod() модуля os
- Функция chown() модуля os
- Функция chroot() модуля os
- Функция getcwd() модуля os
- Функция link() модуля os
- Функция mkdir() модуля os
- Функция makedirs() модуля os
- Функция symlink() модуля os
- Функция readlink() модуля os
- Функция remove() модуля os, удалить файл
- Функция removedirs() модуля os
- Функция rename() модуля os
- Функция renames() модуля os
- Функция replace() модуля os
- Функция rmdir() модуля os
- Функция strerror() модуля os
- Функция supports_dir_fd модуля os
- Функция supports_effective_ids модуля os
- Функция supports_fd модуля os
- Функция supports_follow_symlinks модуля os
- Функция truncate() модуля os
- Функция utime() модуля os
- Манипулирование списком контроля доступа ACL в Linux
- Функция abort() модуля os
- Функция exec*() модуля os
- Функция popen() модуля os
- Функция system() модуля os
- Функция _exit() модуля os
- Функция fork() модуля os
- Функция kill() модуля os
- Функции spawn*() модуля os
- Функция umask() модуля os
- Функция uname() модуля os
- Функция wait() модуля os
- Функция waitpid() модуля os
- Определение состояния процесса
- Константы для поддержки операций с путями
- Генератор случайных байтов на основе модуля os
- Функция startfile() модуля os
- Функция times() модуля os
- Функции getloadavg() и cpu_count() модуля os
- Функция waitstatus_to_exitcode() модуля os
- Функция listdrives() модуля os, имена дисков Windows
- Функция listmounts() модуля os, точки монтирования Windows
- Функция listvolumes() модуля os, список томов Windows
Как переименовать файлы?

Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой >
Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.

Модератор @TosterModerator
Когда вы регистрировались, вы обещали выполнять Регламент. Ваше сообщение нарушило сразу несколько параграфов Регламента, а именно 3.2, 3.4, 3.8.
Если вы будете продолжать нарушать Регламент, ваши вопросы могут быть удалены, а аккаунт заблокирован модераторами временно или навсегда.
Будьте благоразумны.
bossigorxxx @bossigorxxx Автор вопроса
Модератор, забылся!) исправил проблему!

Модератор @TosterModerator
bossigorxxx, уберите из вопроса лирику (п.3.4), ваши списки файлов тоже рекомендуется обернуть тэгом code для корректного отображения.
Решения вопроса 0
Ответы на вопрос 1

Сергей П @trapwalker Куратор тега Python
Программист, энтузиаст
Такие вещи удобно делать однострочниками через «py» прямо в командной строке, но это если знаешь питон и легко на нём фигачишь скрипты.
Если у вас с питоном беда, то можете всё это проделать в экселе.
Вам нужно выгрузить листинг каталога в файл, вставить его в столбец экселя, формулами обработать и в отдельном столбце получить команду для переименовывания. Потом этот столбец копируете и сохарняете его текст как *.bat-файл, или shell, если другая операционка.
Если у вас есть мультикурсорный редактор типа сублайма, Атома, Notepad++, или любой IDE, то вы можно в списке файлов размножить курсоры на каждую строку и проделать все необходимые операции над всеми строками сразу. Получите на выходе тоже пакетный файл для переименования.
Ещё можно поставить FarManager, сейчас он стал вообще кроссплатформенным. Там можно записываь клавиатурные макросы. Делаете одно переименоание под запись, а потом вешаете записанны ймакрос на клавишу и обрабатываете все файлы быстроенько.
А ещё можно к фрилансерам сходить, если задача на один раз. Просто за тем, чтобы вам решили одноразовую задачу сюда ходить не принято. Тем более плюя на принятые правила на ресурсе и не оформляя правильно код, чтобы у люде йне вытекали глаза глядя на код без форматирования.
Выбирайте решение на любой вкус.
Ну ок, на питоне вам стоит каждое имя файла сплитнуть по символу «-«, а потом, перебрав все элементы получившегося списка, дополнить нулями те, что состят только из цифр (метод isdigit).
У строки есть метод zfill, который умеет это делать до нужной длины слева.