Описанные ниже методы позволяют создать/удалить файл, каталог или символическую ссылку средствами модуля pathlib
. Данные методы принадлежат экземпляру, созданному из класса Path()
.
Смотрите другие методы и свойства, доступные экземпляру класса pathlib.Path()
.
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
:Метод Path.mkdir()
создает новый каталог по заданному пути path
. Если указан режим mode
, он объединяется со значением umask
, для определения режима файла и флагов доступа. Если путь уже существует, вызывается исключение FileExistsError
.
>>> from pathlib import Path >>> p = Path('some/to/mydir') >>> p.mkdir(parents=True) >>> p.is_dir() # True >>> p.is_file() # False >>> p.rmdir()
parents=True
, то будут созданы все отсутствующие каталоги нового пути, если это необходимости. Отсутствующие каталоги создаются с разрешениями по умолчанию без учета указанного режима mode
, имитируя команду POSIX mkdir -p
.parents=False
(по умолчанию), то отсутствующие каталоги будут вызывать исключение FileNotFoundError
.exist_ok=False
(по умолчанию), то вызывается исключение FileExistsError
, если целевой каталог уже существует.exist_ok=True
, то исключения FileExistsError
будут игнорироваться. Имитирует команду mkdir -p
, но только в том случае, если последний компонент пути не является существующим файлом.Path.touch(mode=0o666, exist_ok=True)
:Метод Path.touch()
создает пустой файл с заданным разрешением по указанному пути path
.
>>> from pathlib import Path >>> p = Path('myfile.ext') >>> p.touch(mode=0o644) >>> p.is_dir() # False >>> p.is_file() # True >>> p.unlink()
mode
, он объединяется со значением umask
процесса для определения режима файла и флагов доступа. exist_ok
имеет значение True
, то его время модификации обновляется до текущего времени, в противном случае вызывается исключение FileExistsError
.Path.hardlink_to(target)
:Метод Path.hardlink_to()
делайте путь, указанный в Path
жесткой ссылкой на файл, указанный в target
.
Примечание. Порядок аргументов (target
, link
) является обратным по сравнению с os.link()
.
>>> from pathlib import Path >>> p = Path('mylink') >>> p.hardlink_to('setup.py')
Новое в Python 3.10.
Path.link_to(target)
:Метод Path.link_to()
создает жесткую ссылку с именем, указанным в path
и указывающую на путь target
.
>>> from pathlib import Path >>> p = Path('mylink') >>> p.link_to('setup.py')
Предупреждение Эта функция не делает этот путь жесткой ссылкой на цель target
, несмотря на значение имени функции и аргумента. Порядок аргументов (target
, link
) обратен Path.symlink_to()
и Path.hardlink_to()
, но совпадает с порядком os.link()
.
Новое в Python 3.8
Не рекомендуется, начиная с Python 3.10: этот метод устарел в пользу Path.hardlink_to()
, поскольку порядок аргументов Path.link_to()
не совпадает с порядком аргументов Path.symlink_to()
.
Path.symlink_to(target, target_is_directory=False)
:Метод Path.symlink_to()
создает символическую ссылку с именем, указанным в path
и указывающую на путь target
. В Windows target_is_directory
должен быть True
(по умолчанию False
), если целью ссылки является каталог. В POSIX значение target_is_directory
игнорируется.
>>> from pathlib import Path >>> p = Path('mylink') >>> p.symlink_to('setup.py') >>> p.resolve() # PosixPath('/home/antoine/pathlib/setup.py') >>> p.stat().st_size # 956 >>> p.lstat().st_size # 8
Примечание. Порядок аргументов (link, target)
в функции os.symlink()
является обратным.
Path.unlink(missing_ok=False)
:Метод Path.unlink()
удаляет файл или символическую ссылку, указанную в пути path
. Файл или символическая ссылка должны иметь соответствующее разрешение.
>>> from pathlib import Path >>> p = Path('some/dir/myfile.ext') >>> p.unlink()
Path.rmdir()
.missing_ok
равен False
(по умолчанию), то вызывается исключение FileNotFoundError
если путь не существует.missing_ok
равен True
, то исключения FileNotFoundError
будет игнорироваться аналогично команде POSIX rm -f
.Изменено в Python 3.8: Добавлен параметр missing_ok
.
Path.rmdir()
:Метод Path.rmdir()
удаляет каталог, указанный в пути path
. Каталог должен быть пустым и иметь соответствующие разрешения.
>>> from pathlib import Path >>> p = Path('some/mydirectory') >>> p.rmdir()