Пути относительно дескриптора каталога: если dir_fd
не None
, это должен быть дескриптор файла, ссылающийся на каталог, а путь для работы должен быть задан относительно этого каталога. Если путь абсолютный, dir_fd
игнорируется. Для систем POSIX Python будет вызывать вариант функции с суффиксом 'at'
и возможно, с префиксом 'f'
. Например, вызовет faccessat
вместо access
.
Вы можете проверить, поддерживается ли dir_fd
для конкретной функции на вашей платформе, используя функцию, описанной ниже.
import os os.supports_dir_fd
Функция supports_dir_fd
модуля os
возвращает объект set
, указывающий, какие функции в модуле os принимают дескриптор открытого файла для своего параметра dir_fd
- путь относительно дескриптора каталога.
Базовая функциональность, которую Python использует для реализации параметра dir_fd
, доступна не на всех платформах, поддерживаемых Python. Ради согласованности функции, которые могут поддерживать dir_fd
, Python всегда позволяют указывать этот параметр, но будет выдавать исключение, когда она не доступна на локальной ОС. Указание None
для dir_fd
всегда поддерживается на всех платформах.
Чтобы проверить, принимает ли конкретная функция дескриптор открытого файла для своего параметра dir_fd
, используйте оператор in
для support_dir_fd
. Например, это выражение оценивается как True
, если функция os.stat()
принимает дескрипторы открытого файла для dir_fd
на локальной платформе:
os.stat in os.supports_dir_fd
В настоящее время параметры dir_fd
работают только на платформах Unix и не работает на Windows.
>>> import os >>> os.stat in os.supports_dir_fd # True