Описанные ниже методы позволяют переименовать/заменить файл или каталог средствами модуля pathlib
. Данные методы принадлежат экземпляру, созданному из класса Path()
.
Так как класс pathlib.Path()
наследуется от класса pathlib.PurePath()
, следовательно он поддерживает все операции по манипуляции с путями файловой системы.
Смотрите другие методы и свойства, доступные экземпляру класса Path()
модуля pathlib
.
Path.rename(target)
:Метод Path.rename()
переименует файл или каталог пути path
в указанную цель target
. Значение target
может быть либо строкой, либо другим объектом пути.
Path.rename()
вернет новый экземпляр pathlib.Path()
, содержащий новый путь. target
является объектом пути, то его можно использовать для дальнейших манипуляций файлом с новым именем.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.rename()
можно следующим образом:
from pathlib import Path path_file = Path('/path/to/file.txt') # создадим новый путь `'/path/to/other` path_other = path_file.parent / 'other' # проверим, есть ли такая папка if not path_other.is_dir(): # если нет то создадим path_other.mkdir() # перемещаем файл из директории `/path/to/` в `/path/to/other` path_file.rename(path_other / path_file.name)
Path.replace(target)
:Метод Path.replace()
переименует файл или каталог пути path
в указанную цель target
. Значение target
может быть либо строкой, либо другим объектом пути.
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()
Переместить файл при помощи Path.replace()
можно следующим образом:
from pathlib import Path path_file = Path('/path/to/file.txt') # создадим новый путь `'/path/to/other` path_other = path_file.parent / 'other' # проверим, есть ли такая папка if not path_other.is_dir(): # если нет то создадим path_other.mkdir() # перемещаем файл из директории `/path/to/` в `/path/to/other` path_file.replace(path_other / path_file.name)