Сообщить об ошибке.

Создать/удалить файл (каталог) или символическую ссылку

Описанные ниже методы позволяют создать/удалить файл, каталог или символическую ссылку средствами модуля 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()