os — Разные интерфейсы операционной системы

Исходный код: Lib/os.py


Модуль обеспечивает портабельный способ использования функций, зависящих от операционной системы. Если вы просто хотите прочитать или записать файл см. раздел open(), если вы хотите манипулировать путями, см. модуль os.path, и если вы хотите прочитать все строки во всех файлах в командной строке см. модуль fileinput. Для создания временных файлов и каталогов см. модуль tempfile, а для высокоуровневой обработки файлов и каталогов см. модуль shutil.

Примечания по доступности этих функций:

  • Конструкция всех встроенных модулей Python, зависимых от операционной системы, такова, что пока доступна одна и та же функциональность, она использует один и тот же интерфейс; например, функция os.stat(path) возвращает stat информацию о path в том же формате (которая возникла в интерфейсе POSIX).
  • Расширения, характерные для конкретной операционной системы, также доступны через модуль os, но их использование, конечно, представляет угрозу переносимости.
  • Все функции, принимающие путь или имена файлов, принимают как байты, так и строка объекты и приводят к объекту одного типа, если путь или имя файла является возвращенный.
  • В VxWorks не поддерживаются os.fork, os.execv и os.spawn*p*.

Примечание

Все функции этого модуля вызывают OSError (или их подклассы) в случае недопустимых или недоступных имен файлов и путей или других аргументов, имеющих правильный тип, но не принятых операционной системой.

exception os.error

алиас для встроенного исключения OSError.

os.name

Имя импортированного модуля, зависимого от операционной системы. В настоящее время зарегистрированы следующие имена: 'posix', 'nt', 'java'.

См.также

sys.platform имеет более мелкую гранулярность. os.uname() предоставляет информацию о версии, зависящей от системы.

Модуль platform обеспечивает детальную проверку идентификатора системы.

Имена файлов, аргументы командной строки и переменные среды

В Python имена файлов, аргументы командной строки и переменные среды представлены с помощью типа строка. В некоторых системах декодирование этих строки в байты и из них необходимо перед передачей их в операционную систему. Python использует файловую систему кодировка для выполнения этого преобразования (см. sys.getfilesystemencoding()).

Изменено в версии 3.1: В некоторых системах преобразование с помощью файловой системы кодировка может завершиться ошибкой. В этом случае Python использует обработчик ошибок кодирования surrogateescape, что означает, что undecodable байты заменены Юникод символ U+DCxx на расшифровке, и они снова переведены на оригинальный байт на кодировка.

Файловая система кодировка должна гарантировать успешное декодирование всех байтов ниже 128. Если файловая система, которую кодировка не обеспечивает этой гарантии, функции API, может поднять UnicodeErrors.

Параметры процесса

Эти функции и элементы данных предоставляют информацию и работают с текущим процессом и пользователем.

os.ctermid()

Возвращает имя файла, соответствующее управляющему терминалу процесса.

Availability: Unix.

os.environ

Объект отображение, представляющее значение среды по строке. Например, environ['HOME'] - это путь к домашнему каталогу (на некоторых платформах) и эквивалентен getenv("HOME") в C.

Это отображение захвачено в первый раз, когда модуль os импортирован, как правило, во время запуска Python как часть обработки site.py. Изменения в среде, внесенные после этого времени, не отражаются в os.environ, за исключением изменений, внесенных путем прямого изменения os.environ.

Если платформа поддерживает функцию putenv(), это отображение может быть используемый для изменения среды, а также для запроса среды. putenv() вызывается автоматически при изменении сопоставления.

На Unix ключи и значения используют sys.getfilesystemencoding() и ошибку 'surrogateescape' обработчик. Используйте environb, если вы хотите использовать другой кодировка.

Примечание

Прямой вызов putenv() не меняет os.environ, поэтому лучше изменить os.environ.

Примечание

На некоторых платформах, включая FreeBSD и Mac OS X, настройка environ может привести к утечке памяти. Обратитесь к системной документации для putenv().

Если putenv() не обеспечен, измененная копия этого отображения может быть передана к соответствующим функциям создания процесса, чтобы заставить дочерние процессы использовать измененную окружающую среду.

Если платформа поддерживает функцию unsetenv(), можно удалить элементы в этом сопоставлении для отмены установки переменных среды. unsetenv() вызывается автоматически при удалении элемента из os.environ и при вызове одного из методов pop() или clear().

os.environb

Байты версии environ: объект отображение, представляющий среду в виде байта строки. environ и environb синхронизируются (modify environb update environ и наоборот).

environb доступен только в том случае, если supports_bytes_environ является True.

Добавлено в версии 3.2.

os.chdir(path)
os.fchdir(fd)
os.getcwd()

Эти функции описаны в разделе Файлы и каталоги.

os.fsencode(filename)

Закодировать путеподобный объект filename в кодировку файловой системы с ошибкой 'surrogateescape' обработчик или 'strict' на Windows; возвращает bytes без изменений.

fsdecode() - обратная функция.

Добавлено в версии 3.2.

Изменено в версии 3.6: Добавлена поддержка для принятия объектов, реализующих интерфейс os.PathLike.

os.fsdecode(filename)

Декодировать путеподобный объект filename из кодировки файловой системы с ошибкой 'surrogateescape' обработчик или 'strict' на Windows; возвращает str без изменений.

fsencode() - обратная функция.

Добавлено в версии 3.2.

Изменено в версии 3.6: Добавлена поддержка для принятия объектов, реализующих интерфейс os.PathLike.

os.fspath(path)

Возвращает представление пути в файловой системе.

Если str или bytes переданы в, это возвращенный неизменный. Иначе __fspath__() называют, и его значение - возвращенный, пока это - объект str или bytes. Во всех других случаях поднят TypeError.

Добавлено в версии 3.6.

class os.PathLike

Абстрактный базовый класс для объектов, представляющих путь к файловой системе, например pathlib.PurePath.

Добавлено в версии 3.6.

abstractmethod __fspath__()

Возвращает представление пути к файловой системе объекта.

Метод должен только возвращает объект str или bytes, при этом предпочтение для str.

os.getenv(key, default=None)

Возвращает значение переменной среды key, если она существует, или default, если она не существует. key, default и результат - стр.

В Unix ключи и значения расшифрованы с sys.getfilesystemencoding() и ошибкой 'surrogateescape' обработчик. Используйте os.getenvb(), если вы хотите использовать другой кодировка.

Availability: most flavors of Unix, Windows.

os.getenvb(key, default=None)

Возвращает значение переменной среды key, если она существует, или default, если она не существует. key, default и результат - байты.

getenvb() доступен только в том случае, если supports_bytes_environ является True.

Availability: most flavors of Unix.

Добавлено в версии 3.2.

os.get_exec_path(env=None)

Возвращает список каталогов, которые будут найденный для именованного исполняемого файла, подобного оболочке, при запуске процесса. env, если указано, должен быть словарем переменных среды для поиска PATH в. По умолчанию, когда env - None, environ - используемый.

Добавлено в версии 3.2.

os.getegid()

Возвращает идентификатор действующей группы текущего процесса. Это соответствует биту «set id» в файле, выполняемом в текущем процессе.

Availability: Unix.

os.geteuid()

Возвращает эффективный идентификатор пользователя текущего процесса.

Availability: Unix.

os.getgid()

Возвращает идентификатор реальной группы текущего процесса.

Availability: Unix.

os.getgrouplist(user, group)

Список возвращает ids группы, которому принадлежит user. Если group нет в списке, он включается; как правило, group указывается в качестве поля идентификатора группы из записи пароля для user.

Availability: Unix.

Добавлено в версии 3.3.

os.getgroups()

Возвращает список дополнительных идентификаторов групп, связанных с текущим процессом.

Availability: Unix.

Примечание

В Mac OS X поведение getgroups() несколько отличается от других платформ Unix. Если Python интерпретатор был построен с целью развертывания 10.5 или ранее, getgroups() возвращает список эффективного ids группы, связанного с текущим пользовательским процессом; этот список ограничен определенным системой количеством записей, как правило, 16, и может быть изменен требованиями к setgroups(), если соответственно дано привилегию. Если построено с целью развертывания, больше, чем 10.5, getgroups() возвращает, текущий список доступа группы для пользователя связался с эффективным идентификатором пользователя процесса; групповой список доступа может изменяться в течение всего срока действия процесса, на него не влияют вызовы setgroups(), и его длина не ограничивается 16. Цель развертывания значение, MACOSX_DEPLOYMENT_TARGET, может быть получена с помощью sysconfig.get_config_var().

os.getlogin()

Возвращает имя пользователя, вошедшего в систему на управляющем терминале процесса. Для большинства целей более полезно использовать getpass.getuser(), поскольку последний проверяет переменные среды LOGNAME или USERNAME, чтобы узнать, кто пользователь, и возвращается к pwd.getpwuid(os.getuid())[0], чтобы получить имя входа текущего реального идентификатора пользователя.

Availability: Unix, Windows.

os.getpgid(pid)

Возвращает идентификатор группы процессов процесса с идентификатором процесса pid. Если pid 0, id группы процесса текущего процесса - возвращенный.

Availability: Unix.

os.getpgrp()

Возвращает идентификатор текущей группы процессов.

Availability: Unix.

os.getpid()

Возвращает идентификатор текущего процесса.

os.getppid()

Возвращает идентификатор родительского процесса. После завершения родительского процесса в Unix идентификатор возвращенный является идентификатором инициируемого процесса (1), в Windows - тем же идентификатором, который уже может быть использован другим процессом.

Availability: Unix, Windows.

Изменено в версии 3.2: Добавлена поддержка Windows.

os.getpriority(which, who)

Получение приоритета планирования программ. значение which является одним из PRIO_PROCESS, PRIO_PGRP или PRIO_USER, и who интерпретируется относительно which (идентификатор процесса для PRIO_PROCESS, идентификатор группы процессов для PRIO_PGRP и идентификатор пользователя для PRIO_USER). Ноль значение для who обозначает (соответственно) процесс запроса, группу процесса процесса запроса или реальный идентификатор пользователя процесса запроса.

Availability: Unix.

Добавлено в версии 3.3.

os.PRIO_PROCESS
os.PRIO_PGRP
os.PRIO_USER

Параметры функций getpriority() и setpriority().

Availability: Unix.

Добавлено в версии 3.3.

os.getresuid()

Возвращает кортеж (ruid, euid, suid), обозначающий реальные, эффективные и сохраненные идентификаторы пользователей текущего процесса.

Availability: Unix.

Добавлено в версии 3.2.

os.getresgid()

Возвращает кортеж (rgid, egid, sgid), обозначающий реальные, эффективные и сохраненные идентификаторы групп текущего процесса.

Availability: Unix.

Добавлено в версии 3.2.

os.getuid()

Возвращает реальный идентификатор пользователя текущего процесса.

Availability: Unix.

os.initgroups(username, gid)

Вызвать системные initgroups () для инициализации списка доступа к группе со всеми группами, членом которых является указанное имя пользователя, плюс указанный идентификатор группы.

Availability: Unix.

Добавлено в версии 3.2.

os.putenv(key, value)

Задать для переменной среды с именем key значение строку value. Такие изменения среды влияют на подпроцессы, начатые с os.system(), popen() или fork() и execv().

Availability: most flavors of Unix, Windows.

Примечание

На некоторых платформах, включая FreeBSD и Mac OS X, настройка environ может привести к утечке памяти. См. системную документацию по putenv.

Когда putenv() поддержан, назначения на предметы в os.environ автоматически переведены на соответствующие требования к putenv(); однако вызовы putenv() не обновляют os.environ, поэтому на самом деле предпочтительнее назначать элементам os.environ.

Raises an auditing event os.putenv with arguments key, value.

os.setegid(egid)

Задать идентификатор действующей группы текущего процесса.

Availability: Unix.

os.seteuid(euid)

Задать действительный идентификатор пользователя текущего процесса.

Availability: Unix.

os.setgid(gid)

Задать идентификатор группы текущего процесса.

Availability: Unix.

os.setgroups(groups)

Задать для списка идентификаторов дополнительных групп, связанных с текущим процессом, значение groups. groups должен быть последовательностью, а каждый элемент должен быть целым числом, идентифицирующим группу. Эта операция обычно доступна только суперпользователю.

Availability: Unix.

Примечание

В Mac OS X длина groups не может превышать определенное системой максимальное число идентификаторов эффективных групп, обычно 16. См. документацию для getgroups() для случаев, где это не может возвращает тот же список группы, установленный, звоня setgroups().

os.setpgrp()

Вызвать системный вызов setpgrp() или setpgrp(0, 0) в зависимости от версии (при наличии). Семантику см. в руководстве по Unix.

Availability: Unix.

os.setpgid(pid, pgrp)

Вызвать системный вызов setpgid() для установки идентификатора группы процессов процесса с идентификатором pid в группу процессов с идентификатором pgrp. Семантику см. в руководстве по Unix.

Availability: Unix.

os.setpriority(which, who, priority)

Установить приоритет планирования программ. значение which является одним из PRIO_PROCESS, PRIO_PGRP или PRIO_USER, и who интерпретируется относительно which (идентификатор процесса для PRIO_PROCESS, идентификатор группы процессов для PRIO_PGRP и идентификатор пользователя для PRIO_USER). Ноль значение для who обозначает (соответственно) процесс запроса, группу процесса процесса запроса или реальный идентификатор пользователя процесса запроса. priority - значение в диапазоне от -20 до 19. Приоритет по умолчанию - 0; снижение приоритетов вызывает более благоприятное планирование.

Availability: Unix.

Добавлено в версии 3.3.

os.setregid(rgid, egid)

Задать действительные и эффективные идентификаторы групп текущего процесса.

Availability: Unix.

os.setresgid(rgid, egid, sgid)

Задать действительные, эффективные и сохраненные идентификаторы групп текущего процесса.

Availability: Unix.

Добавлено в версии 3.2.

os.setresuid(ruid, euid, suid)

Установка реальных, эффективных и сохраненных идентификаторов пользователей текущего процесса.

Availability: Unix.

Добавлено в версии 3.2.

os.setreuid(ruid, euid)

Установка реальных и эффективных идентификаторов пользователей текущего процесса.

Availability: Unix.

os.getsid(pid)

Вызвать системный вызов getsid(). Семантику см. в руководстве по Unix.

Availability: Unix.

os.setsid()

Вызвать системный вызов setsid(). Семантику см. в руководстве по Unix.

Availability: Unix.

os.setuid(uid)

Задать идентификатор пользователя текущего процесса.

Availability: Unix.

os.strerror(code)

Возвращает сообщение об ошибке, соответствующее ошибке код в code. На платформах, где strerror() возвращает NULL, если указан неизвестный номер ошибки, возникает ValueError.

os.supports_bytes_environ

True если собственный тип оС среды равен байтам (например, False в Windows).

Добавлено в версии 3.2.

os.umask(mask)

Установить текущее числовое значение umask и возвращает предыдущее значение umask.

os.uname()

Возвращает информацию, идентифицирующую текущую операционную систему. возвращает значение - это объект с пятью атрибуты:

  • sysname - имя операционной системы
  • nodename - имя машины в сети (определено реализацией)
  • release - выпуск операционной системы
  • version - версия операционной системы
  • machine - идентификатор оборудования

Для назад совместимости этот объект также повторяем, ведя себя как с пятью кортежами, содержащий sysname, nodename, release, version и machine в том заказе.

Некоторые системы усекают nodename до 8 символов или до ведущего компонента; лучший способ получить имя хоста является socket.gethostname() или даже socket.gethostbyaddr(socket.gethostname()).

Availability: последние разновидности Unix.

Изменено в версии 3.3: Возвращает тип изменен с кортежа на кортежный объект с именем атрибуты.

os.unsetenv(key)

Отмените установку (удаление) переменной среды с именем key. Такие изменения среды влияют на подпроцессы, начатые с os.system(), popen() или fork() и execv().

При поддержке функции «unsetenv()» удаление элементов в функции «os.environ» автоматически преобразуется в соответствующий вызов функции «unsetenv()»; однако вызовы unsetenv() не обновляют os.environ, поэтому на самом деле предпочтительно удалять элементы os.environ.

Raises an auditing event os.unsetenv with argument key.

Availability: большинство разновидностей Unix.

Создать объекта файла

Эти функции создают новые файловые объекты. (См. также open() для открытия файловых дескрипторов.)

os.fdopen(fd, *args, **kwargs)

Возвращает открытый объект файла, подключенный к файлу дескриптор fd. Это - алиас встроенной функции open() и принимает те же аргументы. Единственное отличие состоит в том, что первый аргумент fdopen() всегда должен быть целым числом.

Файл дескриптор операции

Эти функции работают с I/O потоками, на которые ссылается файл дескрипторы.

Файл дескрипторы - это небольшие целые числа, соответствующие файлу, который был открыт текущим процессом. Например, стандартный ввод обычно является файлом дескриптор 0, стандартный вывод - 1, а стандартная ошибка - 2. Другие файлы, открытые процессом, будут присвоены 3, 4, 5 и т.д. Название «файл дескриптор» слегка обманчиво; на платформах Unix на сокеты и пайпы также ссылаются файловые дескрипторы.

Метод fileno() может быть используемый, чтобы получить файл дескриптор, связанный с файловым объектом при необходимости. Обратите внимание, что использование файла дескриптор непосредственно обойдет методы объекта файла, игнорируя аспекты, такие как внутреннее буферизование данных.

os.close(fd)

Закрыть файл дескриптор fd.

Примечание

Эта функция предназначена для низкоуровневое I/O и должна применяться к файлу дескриптор как возвращенный os.open() или pipe(). Чтобы закрыть объект файла возвращенный встроенной функцией open() или методом popen() или fdopen(), используйте его метод close().

os.closerange(fd_low, fd_high)

Закройте все файлы дескрипторы от fd_low (включительно) до fd_high (эксклюзивно), игнорируя ошибки. Эквивалентно (но намного быстрее):

for fd in range(fd_low, fd_high):
    try:
        os.close(fd)
    except OSError:
        pass
os.copy_file_range(src, dst, count, offset_src=None, offset_dst=None)

Скопировать байты count с файла дескриптор src, начинающегося с погашения offset_src, к файлу дескриптор dst, начинающемуся с погашения offset_dst. Если offset_src None, то src считывается из текущей позиции; соответственно для offset_dst. Файлы, указанные src и dst, должны проживать в той же файловой системе, иначе OSError поднят с набором errno до errno.EXDEV.

Эта копия выполняется без дополнительных затрат на перенос данных из ядра в пользовательское пространство, а затем обратно в ядро. Кроме того, некоторые файловые системы могут реализовать дополнительные оптимизации. Копирование выполняется так, как если бы оба файла были открыты как двоичные.

Значение возвращает значение - это количество скопированных байтов. Это может быть меньше запрошенной суммы.

Availability: Linux kernel >= 4.5 или glibc >= 2.27.

Добавлено в версии 3.8.

os.device_encoding(fd)

Возвращает строку, описывающий кодировка устройства, связанного с fd, если оно подключено к терминалу; иначе возвращает None.

os.dup(fd)

Возвращает дубликат файла дескриптор fd. Новый файл дескриптор является non-inheritable.

В Windows при копировании стандартного потока (0: stdin, 1: stdout, 2: stderr) новый файл дескриптор является inheritable.

Изменено в версии 3.4: Новый файл дескриптор теперь не наследуется.

os.dup2(fd, fd2, inheritable=True)

Дублировать файл дескриптор fd в fd2, при необходимости закрывая последний. Возвращает fd2. Новый файл дескриптор - inheritable по умолчанию или ненаследственный, если inheritable - False.

Изменено в версии 3.4: Добавлена дополнительный параметр inheritable.

Изменено в версии 3.7: Возвращает fd2 на успех. Раньше None всегда был возвращенный.

os.fchmod(fd, mode)

Изменить режим файла, данного fd числовому mode. Посмотрите докторов для chmod() для возможного значения mode. По состоянию на Python 3.3 это эквивалентно os.chmod(fd, mode).

Raises an auditing event os.chmod with arguments path, mode, dir_fd.

Availability: Unix.

os.fchown(fd, uid, gid)

Изменить имя владельца и идентификатор группы файла, заданного как fd, на числовые uid и gid. Чтобы оставить один из идентификаторов без изменений, установите для него значение -1. Смотри chown(). По состоянию на Python 3.3 это эквивалентно os.chown(fd, uid, gid)`.

Raises an auditing event os.chown with arguments path, uid, gid, dir_fd.

Availability: Unix.

os.fdatasync(fd)

Принудительная запись файла с файлописателем fd на диск. Не принудительно обновлять метаданные.

Availability: Unix.

Примечание

Эта функция недоступна в MacOS.

os.fpathconf(fd, name)

Возвращает информацию о конфигурации системы, относящуюся к открытому файлу. name определяет конфигурацию значение, чтобы восстановить; это может быть строка, которая является именем определенной системы значение; эти имена указаны в ряде стандартов (POSIX.1, Unix 95, Unix 98 и другие). Некоторые платформы также определяют дополнительные имена. Имена, известные операционной системе хоста, приведены в словаре pathconf_names. Для переменных конфигурации, не включенных в это сопоставление, также принимается передача целого числа для name.

Если name является строка и неизвестно, ValueError поднимается. Если определенный значение для name не поддержан хост-системой, даже если это включено в pathconf_names, OSError поднят с errno.EINVAL для кода ошибки.

По состоянию на Python 3.3 это эквивалентно os.pathconf(fd, name).

Availability: Unix.

os.fstat(fd)

Получение состояния файла дескриптор fd. Возвращает объект stat_result.

По состоянию на Python 3.3 это эквивалентно os.stat(fd).

См.также

Функция stat().

os.fstatvfs(fd)

Возвращает информацию о файловой системе, содержащей файл, связанный с файлом дескриптор fd, например statvfs(). По состоянию на Python 3.3 это эквивалентно os.statvfs(fd).

Availability: Unix.

os.fsync(fd)

Принудительная запись файла с файлописателем fd на диск. В Unix вызывается собственная функция fsync(); на Windows, функции _commit() MS.

Если вы начинаете с буферизованного Python файловый объект f, сначала сделайте f.flush(), а затем os.fsync(f.fileno()), чтобы гарантировать, что все внутренние буферы, связанные с f, будут записаны на диск.

Availability: Unix, Windows.

os.ftruncate(fd, length)

Усечь файл, соответствующий файлу дескриптор fd, чтобы он имел размер не более length байт. По состоянию на Python 3.3 это эквивалентно os.truncate(fd, length).

Raises an auditing event os.truncate with arguments fd, length.

Availability: Unix, Windows.

Изменено в версии 3.5: Добавлена поддержка Windows

os.get_blocking(fd)

Получите режим блокирования файла дескриптор: False, если флаг O_NONBLOCK установлен, True, если флаг очищен.

См. также set_blocking() и socket.socket.setblocking().

Availability: Unix.

Добавлено в версии 3.5.

os.isatty(fd)

Возвращает True если файл дескриптор fd открыт и подключен к устройству tty (-подобный), иначе False.

os.lockf(fd, cmd, len)

Примените, протестируйте или удалите блокировку POSIX для открытого файла дескриптор. fd является открытым файлом дескриптор. cmd определяет используемую команду - одну из F_LOCK, F_TLOCK, F_ULOCK или F_TEST. len указывает раздел блокируемого файла.

Raises an auditing event os.lockf with arguments fd, cmd, len.

Availability: Unix.

Добавлено в версии 3.3.

os.F_LOCK
os.F_TLOCK
os.F_ULOCK
os.F_TEST

Флаги, указывающие, какое действие предпримет lockf().

Availability: Unix.

Добавлено в версии 3.3.

os.lseek(fd, pos, how)

Установить текущее положение файла дескриптор fd в положение pos, измененное how: SEEK_SET или 0, чтобы задать положение относительно начала файла; SEEK_CUR или 1 установить его относительно текущего положения; SEEK_END или 2, чтобы задать его относительно конца файла. Возвращает нового положения курсора в байтах, начиная с начала.

os.SEEK_SET
os.SEEK_CUR
os.SEEK_END

Параметры функции lseek(). Их значения равны 0, 1 и 2 соответственно.

Добавлено в версии 3.3: Некоторые операционные системы могут поддерживать дополнительные значения, такие как os.SEEK_HOLE или os.SEEK_DATA.

os.open(path, flags, mode=0o777, *, dir_fd=None)

Откройте файл path и установите различные флаги в соответствии с flags и, возможно, его режимом в соответствии с mode. Вычисляя mode, текущий umask значение сначала кашируется. Возвращает файл дескриптор для вновь открытого файла. Новый файл дескриптор является non-inheritable.

Описание флага и режима значения см. в документации по времени выполнения C; флаги-константы (например, O_RDONLY и O_WRONLY) определяются в модуле os. В частности, на Windows добавление O_BINARY необходимо для открытия файлов в двоичном режиме.

Эта функция может поддерживать пути относительно дескрипторов каталогов с параметром dir_fd.

Raises an auditing event open with arguments path, mode, flags.

Изменено в версии 3.4: Новый файл дескриптор теперь не наследуется.

Примечание

Эта функция предназначена для низкоуровневое I/O. Для нормального использования используйте встроенную функцию open(), которая возвращает файловый объект с методами read() и write() (и многое другое). Для переноса файла дескриптор в объект файла используйте команду fdopen().

Добавлено в версии 3.3: Аргумент dir_fd.

Изменено в версии 3.5: Если системный вызов прерван, и сигнал обработчик не поднимает исключение, функция теперь повторяет системный вызов вместо того, чтобы поднять исключение InterruptedError (см. PEP 475 для объяснения).

Изменено в версии 3.6: Принимает путеподобный объект.

Следующие константы являются опциями для параметра flags функции open(). Они могут быть объединены, используя bitwise иЛИ оператора |. Некоторые из них доступны не на всех платформах. Для описаний их доступности и использования, консультируйтесь со справочной страницей open(2) по поводу Unix или MSDN на Windows.

os.O_RDONLY
os.O_WRONLY
os.O_RDWR
os.O_APPEND
os.O_CREAT
os.O_EXCL
os.O_TRUNC

Вышеуказанные константы доступны в Unix и Windows.

os.O_DSYNC
os.O_RSYNC
os.O_SYNC
os.O_NDELAY
os.O_NONBLOCK
os.O_NOCTTY
os.O_CLOEXEC

Приведенные выше константы доступны только в Unix.

Изменено в версии 3.3: Добавлена константа O_CLOEXEC.

os.O_BINARY
os.O_NOINHERIT
os.O_SHORT_LIVED
os.O_TEMPORARY
os.O_RANDOM
os.O_SEQUENTIAL
os.O_TEXT

Вышеуказанные константы доступны только в Windows.

os.O_ASYNC
os.O_DIRECT
os.O_DIRECTORY
os.O_NOFOLLOW
os.O_NOATIME
os.O_PATH
os.O_TMPFILE
os.O_SHLOCK
os.O_EXLOCK

Вышеуказанные константы являются расширениями и отсутствуют, если они не определены библиотекой C.

Изменено в версии 3.4: Добавлена O_PATH в системах, которые его поддерживают. Добавлена O_TMPFILE, только доступный на ядре Linux 3.11 или более новый.

os.openpty()

Откройте новую псевдотерминальную пару. Возвращает пару файлов дескрипторы (master, slave) для pty и tty соответственно. Новые файлы дескрипторы являются non-inheritable. Для (немного) более портативного подхода используйте модуль pty.

Availability: некоторые разновидности Unix.

Изменено в версии 3.4: Новые файлы дескрипторы теперь не наследуются.

os.pipe()

Создать пайп. Возвращает пару файлов дескрипторы (r, w), пригодных для чтения и записи соответственно. Новый файл дескриптор является non-inheritable.

Availability: Unix, Windows.

Изменено в версии 3.4: Новые файлы дескрипторы теперь не наследуются.

os.pipe2(flags)

Создать пайп с набором flags атомарно. flags может быть построен путем ORing вместе один или несколько из этих значения: O_NONBLOCK, O_CLOEXEC. Возвращает пару файлов дескрипторы (r, w), пригодных для чтения и записи соответственно.

Availability: некоторые разновидности Unix.

Добавлено в версии 3.3.

os.posix_fallocate(fd, offset, len)

Обеспечивает выделение достаточного места на диске для файла, указанного параметром fd, начиная с offset и продолжая на len байт.

Availability: Unix.

Добавлено в версии 3.3.

os.posix_fadvise(fd, offset, len, advice)

Объявляет о намерении получить доступ к данным в определенном шаблоне, что позволяет ядру выполнять оптимизацию. Совет относится к области файла, указанной параметром fd, начиная с offset и продолжая для len байт. advice является одним из POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED или POSIX_FADV_DONTNEED.

Availability: Unix.

Добавлено в версии 3.3.

os.POSIX_FADV_NORMAL
os.POSIX_FADV_SEQUENTIAL
os.POSIX_FADV_RANDOM
os.POSIX_FADV_NOREUSE
os.POSIX_FADV_WILLNEED
os.POSIX_FADV_DONTNEED

Флаги, которые могут быть используемый в advice в posix_fadvise(), которые определяют образец доступа, который, вероятно, будет используемый.

Availability: Unix.

Добавлено в версии 3.3.

os.pread(fd, n, offset)

Считывание не более n байт из файла дескриптор fd в позиции offset, оставляя смещение файла неизменным.

Возвращает байт-строку, содержащую считанные байты. Если конец файла, упомянутого fd, был достигнут, пустой объект байтов - возвращенный.

Availability: Unix.

Добавлено в версии 3.3.

os.preadv(fd, buffers, offset, flags=0)

Чтение из файлового дескриптора fd на позиции offset в изменяемые байтоподобные объекты buffers, оставляя смещение файла неизменным. Переносите данные в каждый буфер до тех пор, пока он не будет заполнен, а затем переходите к следующему буферу в последовательности, чтобы сохранить остальные данные.

Аргумент flags содержит побитовое значение OR, равное нулю или более из следующих флагов:

Возвращает общее число фактически прочитанных байтов, которое может быть меньше общей емкости всех объектов.

Операционная система может установить ограничение (sysconf() значение 'SC_IOV_MAX') на количество буферов, которые могут быть используемый.

Объединение функциональных возможностей os.readv() и os.pread().

Availability: Linux 2.6.30 и новее, FreeBSD 6.0 и новее, OpenBSD 2.7 и более новые. Для использования флагов требуется Linux 4.6 или более новая версия.

Добавлено в версии 3.7.

os.RWF_NOWAIT

Не дожидайтесь данных, которые не сразу доступны. Если этот флаг указан, системный вызов будет возвращает мгновенно, если потребуется считывать данные из резервного хранилища или ждать блокировки.

Если некоторые данные были успешно прочитаны, они будут возвращает число считанных байтов. Если никакие байты не были прочитаны, это будет возвращает -1 и устанавливать errno в errno.EAGAIN.

Availability: Linux 4.14 and newer.

Добавлено в версии 3.7.

os.RWF_HIPRI

Высокоприоритетное чтение/запись. Позволяет файловым системам на основе блоков использовать опрос устройства, что обеспечивает более низкую задержку, но может использовать дополнительные ресурсы.

В настоящее время, на Linux, эта особенность применима только на файле дескриптор, открытом, используя флаг O_DIRECT.

Availability: Linux 4.6 and newer.

Добавлено в версии 3.7.

os.pwrite(fd, str, offset)

Записать байт-строку в str в файл дескриптор fd в позиции offset, оставив смещение файла неизменным.

Возвращает количество фактически записанных байтов.

Availability: Unix.

Добавлено в версии 3.3.

os.pwritev(fd, buffers, offset, flags=0)

Записать содержание buffers в файловый дескриптор fd с смещением offset, оставив смещение файла без изменений. buffers должна быть последовательностью байтоподобных объектов. Буферы обрабатываются в порядке массива. Все содержимое первого буфера записывается перед переходом ко второму и т.д.

Аргумент flags содержит побитовое значение OR, равное нулю или более из следующих флагов:

Возвращает общее число фактически записанных байт.

Операционная система может установить ограничение (sysconf() значение 'SC_IOV_MAX') на количество буферов, которые могут быть используемый.

Объединение функциональных возможностей os.writev() и os.pwrite().

Availability: Linux 2.6.30 and newer, FreeBSD 6.0 and newer, OpenBSD 2.7 и более новые. Для использования флагов требуется Linux 4.7 или более поздней версии.

Добавлено в версии 3.7.

os.RWF_DSYNC

Укажите эквивалент флага O_DSYNC open(2) для каждой записи. Этот эффект флага применяется только к диапазону данных, записанному системным вызовом.

Availability: Linux 4.7 and newer.

Добавлено в версии 3.7.

os.RWF_SYNC

Укажите эквивалент флага O_SYNC open(2) для каждой записи. Этот эффект флага применяется только к диапазону данных, записанному системным вызовом.

Availability: Linux 4.7 and newer.

Добавлено в версии 3.7.

os.read(fd, n)

Чтение не более n байт из файла дескриптор fd.

Возвращает байт-строку, содержащую считанные байты. Если конец файла, упомянутого fd, был достигнут, пустой объект байтов - возвращенный.

Примечание

Эта функция предназначена для низкоуровневое I/O и должна применяться к файлу дескриптор как возвращенный os.open() или pipe(). Для чтения «файлового объекта» возвращенный встроенной функцией open() или методом popen() или fdopen() или sys.stdin используйте его методы read() или readline().

Изменено в версии 3.5: Если системный вызов прерван, и сигнал обработчик не поднимает исключение, функция теперь повторяет системный вызов вместо того, чтобы поднять исключение InterruptedError (см. PEP 475 для объяснения).

os.sendfile(out, in, offset, count)
os.sendfile(out, in, offset, count, [headers, ][trailers, ]flags=0)

Скопировать байты count от файла дескриптор in в файловый дескриптор out, начинающегося в offset. Возвращает число байт. При достижении EOF возвращает 0.

Нотация первой функции поддерживается всеми платформами, которые определяют sendfile().

В Linux, если offset задано как None, байты считываются с текущей позиции in и позиция in обновляется.

Второй случай может быть используемый на Mac OS X и FreeBSD, где headers и trailers являются произвольными последовательностями буферов, которые записываются до и после записи данных от in. Это возвращает то же как первый случай.

На Mac OS X и FreeBSD, значение 0 для count определяет, чтобы послать, пока конец in не достигнут.

Все платформы поддерживают сокеты как out файл дескриптор, и некоторые платформы также допускают другие типы (например, обычный файл, пайп).

Кроссплатформенные приложения не должны использовать аргументы headers, trailers и flags.

Availability: Unix.

Примечание

Более высокоуровневую оболочку sendfile() см. в разделе socket.socket.sendfile().

Добавлено в версии 3.3.

os.set_blocking(fd, blocking)

Установить режим блокировки указанного файла дескриптор. Установить флаг O_NONBLOCK, если блокировка False, в противном случае снимите флаг.

См. также get_blocking() и socket.socket.setblocking().

Availability: Unix.

Добавлено в версии 3.5.

os.SF_NODISKIO
os.SF_MNOWAIT
os.SF_SYNC

Параметры функции sendfile(), если реализация их поддерживает.

Availability: Unix.

Добавлено в версии 3.3.

os.readv(fd, buffers)

Чтение из файла дескриптор fd в ряд изменяемых байтоподобных объектов buffers. Переносите данные в каждый буфер до тех пор, пока он не будет заполнен, а затем переходите к следующему буферу в последовательности, чтобы сохранить остальные данные.

Возвращает общее число фактически прочитанных байтов, которое может быть меньше общей емкости всех объектов.

Операционная система может установить ограничение (sysconf() значение 'SC_IOV_MAX') на количество буферов, которые могут быть используемый.

Availability: Unix.

Добавлено в версии 3.3.

os.tcgetpgrp(fd)

Возвращает группа процесса связался с терминалом, данным fd (открытый файл дескриптор как возвращенный os.open()).

Availability: Unix.

os.tcsetpgrp(fd, pg)

Установить для группы процессов, связанной с терминалом, предоставленным fd (открытый файл дескриптор как возвращенный os.open()), значение pg.

Availability: Unix.

os.ttyname(fd)

Возвращает строку, указывающий терминальное устройство, связанное с файлом дескриптор fd. Если fd не связан с терминальным устройством, возникает исключение.

Availability: Unix.

os.write(fd, str)

Записать байтовую строку в str к файлу дескриптор fd.

Возвращает количество фактически записанных байтов.

Примечание

Эта функция предназначена для низкоуровневое I/O и должна применяться к файлу дескриптор как возвращенный os.open() или pipe(). Чтобы написать «объект файла» возвращенный встроенной функцией, open() или popen() или fdopen(), или sys.stdout или sys.stderr, используют его метод write().

Изменено в версии 3.5: Если системный вызов прерван, и сигнал обработчик не поднимает исключение, функция теперь повторяет системный вызов вместо того, чтобы поднять исключение InterruptedError (см. PEP 475 для объяснения).

os.writev(fd, buffers)

Записать содержимое buffers в файл дескриптор fd. buffers должна быть последовательностью байтоподобных объектов. Буферы обрабатываются в порядке массива. Все содержимое первого буфера записывается перед переходом ко второму и т.д.

Возвращает общее число фактически записанных байт.

Операционная система может установить ограничение (sysconf() значение 'SC_IOV_MAX') на количество буферов, которые могут быть используемый.

Availability: Unix.

Добавлено в версии 3.3.

Запрос размера терминала

Добавлено в версии 3.3.

os.get_terminal_size(fd=STDOUT_FILENO)

Возвращает размер окна терминала как (columns, lines), кортеж типа terminal_size.

Дополнительный fd аргумента (дефолт STDOUT_FILENO или стандартный выыод) определяет, какой файл дескриптор должен быть подвергнут сомнению.

Если файл дескриптор не связан с терминалом, OSError поднят.

shutil.get_terminal_size() - функция высокого уровня, которая должна обычно быть используемый, os.get_terminal_size - внедрение низкоуровневое.

Availability: Unix, Windows.

class os.terminal_size

Подкласс кортежа, удерживающий (columns, lines) размера окна терминала.

columns

Ширина окна терминала в символах.

lines

Высота окна терминала в символах.

Наследование файловых дескрипторов

Добавлено в версии 3.4.

Файл дескриптор имеет флаг «наследуемый», который указывает, может ли файл дескриптор наследоваться дочерними процессами. Начиная с Python 3.4 файл дескрипторы, созданный Python, ненаследствен по умолчанию.

В UNIX ненаследуемые файловые дескрипторы закрываются в дочерних процессах при выполнении новой программы, другие файловые дескрипторы наследуются.

В Windows ненаследуемые дескрипторы и файловые дескрипторы закрываются в дочерних процессах, за исключением стандартных потоков (file дескрипторы 0, 1 и 2: stdin, stdout и stderr), которые всегда наследуются. С помощью функций spawn* наследуются все наследуемые дескрипторы и все наследуемые файловые дескрипторы. С помощью модуля subprocess все файловые дескрипторы, кроме стандартных потоков, закрываются, а наследуемые дескрипторы наследуются только в том случае, если параметр close_fds имеет значение False.

os.get_inheritable(fd)

Получить «наследуемый» флаг указанного файла дескриптор (логическое значение).

os.set_inheritable(fd, inheritable)

Установить флаг «inheritable» для указанного файла дескриптор.

os.get_handle_inheritable(handle)

Получение «наследуемого» флага указанного дескриптора (логического).

Availability: Windows.

os.set_handle_inheritable(handle, inheritable)

Установить флаг «inheritable» указанного дескриптора.

Availability: Windows.

Файлы и каталоги

На некоторых платформах Unix многие из этих функций поддерживают одну или несколько следующих функций:

  • указание дескриптора файла: Обычно аргумент path, предоставляемый функциям в модуле os, должен быть строка, указывающим путь к файлу. Однако некоторые функции теперь альтернативно принимают открытый файл дескриптор для своего аргумента path. Затем функция будет работать с файлом, на который ссылается дескриптор. (Для систем POSIX Python вызовет вариант функции с префиксом f (например, вызов fchdir вместо chdir).

    Можно проверить, можно ли указать path в качестве файла дескриптор для определенной функции на платформе, используя os.supports_fd. Если эта функция недоступна, ее использование вызовет NotImplementedError.

    Если функция также поддерживает аргументы dir_fd или follow_symlinks, будет ошибкой указать один из них при предоставлении path в качестве файла дескриптор.

  • пути относительно дескрипторов каталогов: Если dir_fd не является None, это должен быть файл дескриптор, ссылающийся на каталог, и путь для работы должен быть относительным; тогда путь будет относительно этого каталога. Если путь абсолютный, dir_fd игнорируется. (Для систем POSIX Python вызовет вариант функции с суффиксом at и, возможно, с префиксом f (например, вызов faccessat вместо access).

    Вы можете проверить, поддерживается ли dir_fd для определенной функции на вашей платформе, используя os.supports_dir_fd. Если он недоступен, его использование приведет к появлению NotImplementedError.

os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)

Используйте реальный uid/gid для проверки доступа к path. Следует отметить, что в большинстве операций будет использоваться эффективный uid/gid, поэтому эта подпрограмма может быть используемый в среде suid/sgid для проверки, имеет ли вызывающий пользователь указанный доступ к path. mode должны быть F_OK для проверки существования path, или это может быть инклюзивное иЛИ одного или нескольких из R_OK, W_OK и X_OK для тестирования разрешений. Возвращает True если доступ разрешен, False если нет. См. справочную страницу Unix access(2) для получения дополнительной информации.

Эта функция может поддерживать определение пути относительно дескрипторов каталогов и не следуя символическим ссылкам.

Если effective_ids является True, access() будет выполнять свои проверки доступа, используя эффективный uid/gid вместо реального uid/gid. effective_ids может не поддерживаться на вашей платформе; можно проверить, доступна ли она с помощью команды os.supports_effective_ids. Если он недоступен, его использование приведет к появлению NotImplementedError.

Примечание

Используя access(), чтобы проверить, уполномочен ли пользователь, например, открыть файл перед фактическим выполнением настолько использующего open(), создает отверстие безопасности, потому что пользователь мог бы эксплуатировать кратковременный интервал между проверкой и открытием файла, чтобы управлять им. Предпочтительнее использовать методы EAFP. Например:

if os.access("myfile", os.R_OK):
    with open("myfile") as fp:
        return fp.read()
return "some default data"

лучше написано как:

try:
    fp = open("myfile")
except PermissionError:
    return "some default data"
else:
    with fp:
        return fp.read()

Примечание

Операции I/O могут завершиться неудачей, даже если access() указывает, что они будут успешными, особенно для операций в сетевых файловых системах, которые могут иметь семантику разрешений, выходящую за рамки обычной модели POSIX с битами разрешений.

Изменено в версии 3.3: Добавлены параметры dir_fd, effective_ids и follow_symlinks.

Изменено в версии 3.6: Принимает путеподобный объект.

os.F_OK
os.R_OK
os.W_OK
os.X_OK

Ценности, чтобы пройти как параметр mode access(), чтобы проверить существование, удобочитаемость, writability и executability path, соответственно.

os.chdir(path)

Изменить текущую рабочую папку на path.

Эта функция может поддерживать указание файлового дескриптора. Дескриптор должен обратиться к открытому справочнику, не открытому файлу.

Эта функция может поднимать OSError и подклассы, такие как FileNotFoundError, PermissionError и NotADirectoryError.

Raises an auditing event os.chdir with argument path.

Добавлено в версии 3.3: Добавлена поддержка указания path в качестве файла дескриптор на некоторых платформах.

Изменено в версии 3.6: Принимает путеподобный объект.

os.chflags(path, flags, *, follow_symlinks=True)

Установить для флагов path числовое значение flags. flags может принимать комбинацию (побитовое иЛИ) следующих значения (как определено в модуле stat):

Эта функция может поддерживать не следуя символическим ссылкам.

Raises an auditing event os.chflags with arguments path, flags.

Availability: Unix.

Добавлено в версии 3.3: Аргумент follow_symlinks.

Изменено в версии 3.6: Принимает путеподобный объект.

os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)

Изменить режим path на числовой mode. mode может взять один из следующих значения (как определено в модуле stat) или bitwise ORed комбинации them:

Эта функция может поддерживать указание файлового дескриптора, пути относительно дескрипторов каталогов и не следуя символическим ссылкам.

Примечание

Хотя Windows поддерживает chmod(), с ним можно установить только флаг только для чтения (через константы stat.S_IWRITE и stat.S_IREAD или соответствующее целое число значение). Все остальные биты игнорируются.

Raises an auditing event os.chmod with arguments path, mode, dir_fd.

Добавлено в версии 3.3: Добавлена поддержка указания path в качестве открытого файла дескриптор, а также аргументов dir_fd и follow_symlinks.

Изменено в версии 3.6: Принимает путеподобный объект.

os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)

Изменить владельца и идентификатор группы path на числовые uid и gid. Чтобы оставить один из идентификаторов без изменений, установите для него значение -1.

Эта функция может поддерживать указание файлового дескриптора, пути относительно дескрипторов каталогов и не следуя символическим ссылкам.

См. раздел shutil.chown() для функции более высокого уровня, которая принимает имена в дополнение к числовым идентификаторам.

Raises an auditing event os.chown with arguments path, uid, gid, dir_fd.

Availability: Unix.

Добавлено в версии 3.3: Добавлена поддержка указания path в качестве открытого файла дескриптор, а также аргументов dir_fd и follow_symlinks.

Изменено в версии 3.6: Поддерживает путеподобный объект.

os.chroot(path)

Изменить корневой каталог текущего процесса на path.

Availability: Unix.

Изменено в версии 3.6: Принимает путеподобный объект.

os.fchdir(fd)

Изменить текущую рабочую папку на папку, представленную файлом дескриптор fd. дескриптор должен обратиться к открытому справочнику, не открытому файлу. По состоянию на Python 3.3 это эквивалентно os.chdir(fd).

Raises an auditing event os.chdir with argument path.

Availability: Unix.

os.getcwd()

Возвращает строка, представляющий текущий рабочий каталог.

os.getcwdb()

Возвращает байт-строку, представляющую текущий рабочий каталог.

Изменено в версии 3.8: Функция теперь использует UTF-8 кодировку на Windows, а не страницу ANSI код: см. PEP 529 для объяснения. Функция больше не устарела в Windows.

os.lchflags(path, flags)

Установить флаги path на числовой flags, как chflags(), но не переходите по символическим ссылкам. По состоянию на Python 3.3 это эквивалентно os.chflags(path, flags, follow_symlinks=False).

Raises an auditing event os.chflags with arguments path, flags.

Availability: Unix.

Изменено в версии 3.6: Принимает путеподобный объект.

os.lchmod(path, mode)

Изменить режим path на числовой mode. Если путь является symlink, это влияет на symlink, а не на target. Посмотрите докторов для chmod() для возможного значения mode. По состоянию на Python 3.3 это эквивалентно os.chmod(path, mode, follow_symlinks=False).

Raises an auditing event os.chmod with arguments path, mode, dir_fd.

Availability: Unix.

Изменено в версии 3.6: Принимает путеподобный объект.

os.lchown(path, uid, gid)

Изменить владельца и идентификатор группы path на числовые uid и gid. Эта функция не будет следовать символическим ссылкам. По состоянию на Python 3.3 это эквивалентно os.chown(path, uid, gid, follow_symlinks=False).

Raises an auditing event os.chown with arguments path, uid, gid, dir_fd.

Availability: Unix.

Изменено в версии 3.6: Принимает путеподобный объект.

Создать жесткую ссылку, указывающую на src с именем dst.

Эта функция может поддерживать определение src_dir_fd и/или dst_dir_fd для поставки пути относительно дескрипторов каталогов и не следуя символическим ссылкам.

Raises an auditing event os.link with arguments src, dst, src_dir_fd, dst_dir_fd.

Availability: Unix, Windows.

Изменено в версии 3.2: Добавлена поддержка Windows.

Добавлено в версии 3.3: Добавлены аргументы src_dir_fd, dst_dir_fd и follow_symlinks.

Изменено в версии 3.6: Принимает путеподобный объект для src и dst.

os.listdir(path='.')

Возврат список, содержащего имена записей в каталоге, заданном path. Список составлен в произвольном порядке и не включает специальные записи '.' и '..', даже если они присутствуют в каталоге. Если файл удаляется из каталога или добавляется в него во время вызова этой функции, не указано, будет ли включено имя этого файла.

path может быть путеподобным объектом. Если path относится к типу bytes (прямо или косвенно через интерфейс PathLike), имена файлов возвращенный также относятся к типу bytes; во всех других обстоятельствах они будут типа str.

Эта функция может также поддерживать указание файлового дескриптора; файл дескриптор должен ссылаться на каталог.

Raises an auditing event os.listdir with argument path.

Примечание

Для кодирования имен файлов str в bytes используйте команду fsencode().

См.также

scandir() функционируют статьи каталога возвращает наряду с информацией о файле атрибут, давая лучшее исполнение для многих случаев общего использования.

Изменено в версии 3.2: Параметр path стал необязательным.

Добавлено в версии 3.3: Добавлена поддержка указания path в качестве открытого файла дескриптор.

Изменено в версии 3.6: Принимает путеподобный объект.

os.lstat(path, *, dir_fd=None)

Выполнить эквивалент системного вызова lstat() по заданному пути. Аналогично stat(), но не переходит по символическим ссылкам. Возвращает объект stat_result.

На платформах, не поддерживающих символические ссылки, это алиас для stat().

По состоянию на Python 3.3, это эквивалентно os.stat(path, dir_fd=dir_fd, follow_symlinks=False).

Эта функция также может поддерживать пути относительно дескрипторов каталогов.

См.также

Функция stat().

Изменено в версии 3.2: Добавлена поддержка символических ссылок Windows 6.0 (Vista).

Изменено в версии 3.3: Добавлен параметр dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект для src и dst.

Изменено в версии 3.8: Теперь в Windows открываются точки повторной обработки, представляющие другой путь (имена суррогатов), включая символические ссылки и соединения каталогов. Другие виды точек повторной обработки разрешаются операционной системой как для stat().

os.mkdir(path, mode=0o777, *, dir_fd=None)

Создать каталог с именем path с числовым режимом mode.

Если каталог уже существует, возникает сообщение FileExistsError.

В некоторых системах mode игнорируется. Там, где это используемый, нынешняя umask значение сначала маскируется. Если установлены биты, отличные от последних 9 (т.е. последние 3 цифры восьмеричного представления mode), их значение зависит от платформы. На некоторых платформах они проигнорированы, и вы должны назвать chmod() явно, чтобы установить их.

Эта функция также может поддерживать пути относительно дескрипторов каталогов.

Также возможно создание временных каталогов; посмотрите, что tempfile.mkdtemp() модуля tempfile функционирует.

Raises an auditing event os.mkdir with arguments path, mode, dir_fd.

Добавлено в версии 3.3: Аргумент dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.makedirs(name, mode=0o777, exist_ok=False)

Рекурсивная функция создания каталога. Как и mkdir(), но делает все каталоги промежуточного уровня необходимыми, чтобы содержать конечный каталог.

Параметр mode передается mkdir() для создания папки листьев; см the mkdir() description, как оно интерпретируется. Чтобы задать биты разрешений файлов для всех вновь созданных родительских каталогов, можно задать umask перед вызовом makedirs(). Биты разрешений для файлов существующих родительских каталогов не изменяются.

Если exist_ok имеет значение False (значение по умолчанию), то если целевой каталог уже существует, возникает FileExistsError.

Примечание

makedirs() запутается, если создаваемые элементы пути включают в себя pardir (например, .. «» в системах UNIX).

Эта функция правильно обрабатывает UNC-пути.

Raises an auditing event os.mkdir with arguments path, mode, dir_fd.

Добавлено в версии 3.2: Параметр exist_ok.

Изменено в версии 3.4.1: До Python 3.4.1, если exist_ok был True и каталог существовал, makedirs() все равно вызовет ошибку, если mode не соответствовал режиму существующего каталога. Поскольку такое поведение было невозможно реализовать безопасно, оно было удалено в Python 3.4.1. Смотри bpo-21082.

Изменено в версии 3.6: Принимает путеподобный объект.

Изменено в версии 3.7: Аргумент mode больше не влияет на биты разрешений файлов вновь созданных каталогов промежуточного уровня.

os.mkfifo(path, mode=0o666, *, dir_fd=None)

Создать FIFO (именованный пайп) с именем path с числовым режимом mode. Текущий umask значение сначала замаскирован из режима.

Эта функция также может поддерживать пути относительно дескрипторов каталогов.

FIFO являются пайпы, доступ к которым возможен, как к обычным файлам. FIFO существуют до тех пор, пока они не будут удалены (например, с os.unlink()). Обычно FIFOs - используемый как рандеву между процессами типа «клиента» и «сервера»: сервер открывает FIFO для чтения, и клиент открывает его для написания. Обратите внимание, что mkfifo() не открывает FIFO — он просто создает точку встречи.

Availability: Unix.

Добавлено в версии 3.3: Аргумент dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.mknod(path, mode=0o600, device=0, *, dir_fd=None)

Создать узел файловой системы (файл, специальный файл устройства или имя пайп) с именем path. mode определяет как разрешения на использование, так и тип создаваемого узла, объединяемого (побитовое иЛИ) с одним из stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK и stat.S_IFIFO (эти константы доступны в stat). Для stat.S_IFCHR и stat.S_IFBLK device определяет новый специальный файл устройства (вероятно, с использованием os.makedev()), в противном случае он игнорируется.

Эта функция также может поддерживать пути относительно дескрипторов каталогов.

Availability: Unix.

Добавлено в версии 3.3: Аргумент dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.major(device)

Извлеките основной номер устройства из исходного номера устройства (обычно поле st_dev или st_rdev из: c:type:stat).

os.minor(device)

Извлеките вспомогательный номер устройства из исходного номера устройства (обычно поле st_dev или st_rdev из: c:type:stat).

os.makedev(major, minor)

Составить необработанный номер устройства из основного и вспомогательного номеров устройства.

os.pathconf(path, name)

Возвращает информацию о конфигурации системы, относящуюся к именованному файлу. name определяет конфигурацию значение, чтобы восстановить; это может быть строка, которая является именем определенной системы значение; эти имена указаны в ряде стандартов (POSIX.1, Unix 95, Unix 98 и другие). Некоторые платформы также определяют дополнительные имена. Имена, известные операционной системе хоста, приведены в словаре pathconf_names. Для переменных конфигурации, не включенных в это сопоставление, также принимается передача целого числа для name.

Если name является строка и неизвестно, ValueError поднимается. Если определенный значение для name не поддержан хост-системой, даже если это включено в pathconf_names, OSError поднят с errno.EINVAL для кода ошибки.

Эта функция может поддерживать указание файлового дескриптора.

Availability: Unix.

Изменено в версии 3.6: Принимает путеподобный объект.

os.pathconf_names

Словарь, наносящий на карту имена, принятые pathconf() и fpathconf() к целочисленному значения, определен для тех имен операционной системой хозяина. Это может быть используемый, чтобы определить набор имен, известных системе.

Availability: Unix.

Возвращает строка, представляющий путь, на который указывает символическая ссылка. Результатом может быть абсолютное или относительное имя пути; если он является относительным, он может быть преобразован в абсолютное имя пути с помощью os.path.join(os.path.dirname(path), result).

Если path является объектом строка (прямо или косвенно через интерфейс PathLike), результатом будет также объект строка, и вызов может вызвать ошибку UnicedDecoteError. Если path является объектом байтов (прямым или косвенным), результатом будет объект байтов.

Эта функция также может поддерживать пути относительно дескрипторов каталогов.

При попытке разрешить путь, который может содержать ссылки, используйте realpath() для правильной обработки рекурсии и различий платформ.

Availability: Unix, Windows.

Изменено в версии 3.2: Добавлена поддержка символических ссылок Windows 6.0 (Vista).

Добавлено в версии 3.3: Аргумент dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект в Unix.

Изменено в версии 3.8: Принимает объект путеподобный объект и байты в Windows.

Изменено в версии 3.8: Добавленная поддержка директивных соединений, и измененный на возвращает путь замены (который, как правило, включает префикс \\?\), а не дополнительное поле «расшифровки подписи», которое было ранее возвращенный.

os.remove(path, *, dir_fd=None)

Удалите (удалите) файл path. Если path является каталогом, возникает IsADirectoryError. Используйте команду rmdir() для удаления каталогов.

Эта функция может поддерживать пути относительно дескрипторов каталогов.

При попытке удалить используемый файл в Windows возникает исключение; в Unix запись каталога удаляется, но хранилище, выделенное файлу, не становится доступным до тех пор, пока исходный файл не перестанет использоваться.

Эта функция семантически идентична unlink().

Raises an auditing event os.remove with arguments path, dir_fd.

Добавлено в версии 3.3: Аргумент dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.removedirs(name)

Рекурсивно удалить каталоги. Работает как rmdir(), за исключением того, что, если конечный каталог успешно удален, removedirs() пытается последовательно удалить каждый родительский каталог, упомянутый в path, пока не возникнет ошибка (которая игнорируется, поскольку обычно это означает, что родительский каталог не пуст). Например, os.removedirs('foo/bar/baz') сначала удалит каталог 'foo/bar/baz', а затем удалите 'foo/bar' и 'foo', если они пусты. Вызывает OSError, если каталог листьев не может быть успешно удален.

Raises an auditing event os.remove with arguments path, dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

Переименовать файл или каталог src в dst. Если dst существует, операция завершится неудачей с OSError подкласс в ряде случаев:

В Windows, если dst существует, всегда возникает FileExistsError.

В Unix, если src является файлом, а dst является каталогом или наоборот, IsADirectoryError или NotADirectoryError будут вызваны соответственно. Если оба являются каталогами и dst пуст, dst будет заменен без предупреждения. Если dst является непустым каталогом, возникает OSError. Если оба файла являются файлами, dst при наличии разрешения пользователь будет заменять их без предупреждения. Операция может завершиться сбоем в некоторых типах Unix, если src и dst находятся в разных файловых системах. В случае успеха переименование будет атомарной операцией (это требование POSIX).

Эта функция может поддерживать определение src_dir_fd и/или dst_dir_fd для поставки пути относительно дескрипторов каталогов.

Если требуется межплатформенная перезапись места назначения, используйте команду replace().

Raises an auditing event os.rename with arguments src, dst, src_dir_fd, dst_dir_fd.

Добавлено в версии 3.3: Аргументы src_dir_fd и dst_dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект для src и dst.

os.renames(old, new)

Рекурсивный каталог или функция переименования файлов. Работает как rename(), за исключением того, что сначала предпринимается попытка создания промежуточных каталогов, необходимых для улучшения нового имени пути. После переименования каталоги, соответствующие крайним правым сегментам пути старого имени, будут отсечены с помощью removedirs().

Примечание

Эта функция может завершиться сбоем с новой структурой каталогов, если отсутствуют разрешения, необходимые для удаления конечного каталога или файла.

Raises an auditing event os.rename with arguments src, dst, src_dir_fd, dst_dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект для old и new.

os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

Переименовать файл или каталог src в dst. Если dst является каталогом, OSError будет вызван. Если dst существует и является файлом, он будет заменен без предупреждения, если у пользователя есть разрешение. Операция может завершиться неуспешно, если src и dst находятся в разных файловых системах. В случае успеха переименование будет атомарной операцией (это требование POSIX).

Эта функция может поддерживать определение src_dir_fd и/или dst_dir_fd для поставки пути относительно дескрипторов каталогов.

Raises an auditing event os.rename with arguments src, dst, src_dir_fd, dst_dir_fd.

Добавлено в версии 3.3.

Изменено в версии 3.6: Принимает путеподобный объект для src и dst.

os.rmdir(path, *, dir_fd=None)

Удалите (удалите) каталог path. Если каталог не существует или не пуст, возникает FileNotFoundError или OSError соответственно. Чтобы удалить целые деревья каталогов, shutil.rmtree() может быть используемый.

Эта функция может поддерживать пути относительно дескрипторов каталогов.

Raises an auditing event os.rmdir with arguments path, dir_fd.

Добавлено в версии 3.3: Параметр dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.scandir(path='.')

Возвращает итератор объектов os.DirEntry, соответствующих записям в каталоге, заданном path. Записи приводятся в произвольном порядке, и специальные записи '.' и '..' не включаются. Если файл удаляется из каталога или добавляется в него после создания итератора, не указано, будет ли включена запись для этого файла.

Используя scandir() вместо listdir() может значительно увеличить исполнение код, которому также нужны тип файла или информация о файле атрибут, потому что объекты os.DirEntry выставляют эту информацию, если операционная система обеспечивает его, сканируя справочник. Все методы os.DirEntry могут выполнять системный вызов, но is_dir() и is_file() обычно требуют только системного вызова для символических линий связи; os.DirEntry.stat() всегда требует системного вызова в Unix, но только один для символических ссылок в Windows.

path может быть путеподобным объектом. Если path будет иметь тип bytes (прямо или косвенно через интерфейс PathLike), то тип name и path атрибуты каждого os.DirEntry будут bytes; во всех других обстоятельствах они будут типа str.

Эта функция может также поддерживать указание файлового дескриптора; файл дескриптор должен ссылаться на каталог.

Raises an auditing event os.scandir with argument path.

scandir() итератор поддерживает протокол контекстного менеджера и имеет следующий метод:

scandir.close()

Закройте итератор и освободите приобретенные ресурсы.

Это вызывается автоматически при исчерпании итератора или сборе мусора, а также при возникновении ошибки во время итерации. Однако желательно вызвать его явно или использовать with инструкция.

Добавлено в версии 3.6.

В следующем примере показано простое использование scandir() для отображения всех файлов (за исключением каталогов) в данном path, которые не начинаются с '.'. Вызов entry.is_file(), как правило, не выполняет дополнительный системный вызов:

with os.scandir(path) as it:
    for entry in it:
        if not entry.name.startswith('.') and entry.is_file():
            print(entry.name)

Примечание

В системах на базе Unix scandir() использует функции opendir() и readdir() системы. В Windows она использует функции Win32 FindFirstFileW и FindNextFileW.

Добавлено в версии 3.5.

Добавлено в версии 3.6: Добавлена поддержка протокола контекстного менеджера и метода close(). Если scandir() итератор не будет ни исчерпан, ни явно закроется, то ResourceWarning будет испускаться в его деструкторе.

Функция Принимает путеподобный объект.

Изменено в версии 3.7: Добавлена поддержка файловых дескрипторов в Unix.

class os.DirEntry

Объект, выданный scandir() для отображения пути к файлу и других атрибуты файла записи каталога.

scandir() предоставит как можно больше этой информации без дополнительных системных вызовов. Когда stat() или системный вызов lstat() будут сделаны, объект os.DirEntry будет кэш результат.

os.DirEntry сущности не предназначены для хранения в долгоживущих структурах данных; если известно, что метаданные файла изменились или прошло много времени с момента вызова scandir(), вызовите функцию os.stat(entry.path) для получения актуальной информации.

Поскольку методы os.DirEntry могут сделать звонки операционной системы, они могут также поднять OSError. Если вам нужен очень мелкий контроль над ошибками, вы можете поймать OSError при вызове одного из методов os.DirEntry и обработать соответствующим образом.

Для непосредственного использования в качестве путеподобного объекта os.DirEntry реализует интерфейс PathLike.

Атрибуты и методы на os.DirEntry сущность:

name

Базовое имя файла записи относительно аргумента scandir() path.

Параметр name атрибут будет bytes, если аргумент scandir() path имеет тип bytes и str в противном случае. Используйте команду fsdecode() для декодирования имен байтовых файлов.

path

Полное имя пути записи: эквивалентно os.path.join(scandir_path, entry.name) где scandir_path - аргумент scandir() path. Путь является абсолютным, только если аргумент scandir() path является абсолютным. Если аргумент scandir() path был file descriptor, то path атрибут совпадает с name атрибут.

Параметр path атрибут будет bytes, если аргумент scandir() path имеет тип bytes и str в противном случае. Используйте команду fsdecode() для декодирования имен байтовых файлов.

inode()

Возвращает номер inode записи.

Результат кэшируется на объекте os.DirEntry. Используйте команду os.stat(entry.path, follow_symlinks=False).st_ino для получения актуальной информации.

При первом некешированном вызове системный вызов требуется в Windows, но не в Unix.

is_dir(*, follow_symlinks=True)

Возвращает True если эта запись является каталогом или символической ссылкой, указывающей на каталог; возвращает False если запись является или указывает на любой другой тип файла, или если он больше не существует.

Если follow_symlinks является False, возвращает True только если эта запись является каталогом (без следующих symlinks); возвращает False если запись является файлом любого другого типа или если она больше не существует.

Результат кэшируется на объекте os.DirEntry с отдельным кэш для follow_symlinks True и False. Позвоните os.stat() вместе с stat.S_ISDIR(), чтобы получить актуальную информацию.

При первом некешированном вызове в большинстве случаев системный вызов не требуется. В частности, для несимвольных ссылок ни Windows, ни Unix не требуют системного вызова, за исключением некоторых файловых систем Unix, таких как сетевые файловые системы, которые возвращает dirent.d_type == DT_UNKNOWN. Если вход будет symlink, то системный вызов потребуется, чтобы следовать за symlink, если follow_symlinks не будет False.

Этот метод может поднять OSError, например PermissionError, но FileNotFoundError ловится и не поднимается.

is_file(*, follow_symlinks=True)

Возвращает True если эта запись является файлом или символической ссылкой, указывающей на файл; возвращает False, если запись является или указывает на каталог или другую не файловую запись, или если она больше не существует.

Если follow_symlinks является False, возвращает True только если эта запись является файлом (без следующих symlinks); возвращает False если элемент является каталогом или другим элементом, не являющимся файлом, или если он больше не существует.

Результат кэшируется на объекте os.DirEntry. Кэширование, выполненные системные вызовы и возникшие исключения соответствуют is_dir().

Возвращает True если эта запись является символической ссылкой (даже если она разорвана); возвращает False если запись указывает на каталог или файл любого типа, или если он больше не существует.

Результат кэшируется на объекте os.DirEntry. Позвоните os.path.islink(), чтобы получить актуальную информацию.

При первом некешированном вызове в большинстве случаев системный вызов не требуется. В частности, ни Windows, ни Unix не требуют системного вызова, за исключением определенных файловых систем Unix, таких как сетевые файловые системы, которые возвращает dirent.d_type == DT_UNKNOWN.

Этот метод может поднять OSError, например PermissionError, но FileNotFoundError ловится и не поднимается.

stat(*, follow_symlinks=True)

Возвращает объект stat_result для этой записи. По умолчанию этот метод следует за символическими ссылками; чтобы задать символическую ссылку, добавьте аргумент follow_symlinks=False.

В Unix этот метод всегда требует системного вызова. В Windows для него требуется системный вызов только в том случае, если follow_symlinks является True, а запись является точкой повторной обработки (например, символическая ссылка или соединение каталога).

В Windows st_ino, st_dev и st_nlink атрибуты stat_result всегда равны нулю. Позвони os.stat(), чтобы получить эти атрибуты.

Результат кэшируется на объекте os.DirEntry с отдельным кэш для follow_symlinks True и False. Позвоните os.stat(), чтобы получить актуальную информацию.

Обратите внимание, что существует хорошее соответствие между несколькими атрибуты и методами os.DirEntry и pathlib.Path. В частности, name атрибут имеет то же значение, что и методы is_dir(), is_file(), is_symlink() и stat().

Добавлено в версии 3.5.

Изменено в версии 3.6: Добавлена поддержка интерфейса PathLike. Добавлена поддержка bytes путей в Windows.

os.stat(path, *, dir_fd=None, follow_symlinks=True)

Получение состояния файла или дескриптора файла. Выполняет эквивалент системного вызова stat() по заданному пути. path может быть указан как строка или байты, прямо или косвенно через интерфейс PathLike, или как открытый файл дескриптор. Возвращает объект stat_result.

Эта функция, как правило, следует за симлинками; для запуска команды symlink добавьте аргумент follow_symlinks=False или используйте команду lstat().

Эта функция может поддерживать указание файлового дескриптора и не следуя символическим ссылкам.

На Windows, передавая follow_symlinks=False отключит после всех суррогатных именем точек переразбора, который включает директивные соединения и symlinks. Другие типы точек повторной обработки, которые не напоминают ссылки или по которым операционная система не может следовать, будут открыты напрямую. При следовании по цепочке из нескольких звеньев это может привести к тому, что исходное звено будет возвращенный вместо несвязного, что предотвратило полный обход. Для получения статических результатов для конечного тракта в этом случае используйте функцию os.path.realpath(), чтобы разрешить имя тракта по мере возможности и вызвать функцию lstat() для результата. Это не относится к свисающим симлинкам или точкам соединения, что вызовет обычные исключения.

Пример:

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
os.stat_result(st_mode=33188, st_ino=7876932, st_dev=234881026,
st_nlink=1, st_uid=501, st_gid=501, st_size=264, st_atime=1297230295,
st_mtime=1297230027, st_ctime=1297230027)
>>> statinfo.st_size
264

См.также

функции fstat() и lstat().

Добавлено в версии 3.3: Добавлены аргументы dir_fd и follow_symlinks, указывающие файл дескриптор вместо пути.

Изменено в версии 3.6: Принимает путеподобный объект.

Изменено в версии 3.8: В Windows теперь следуют все точки повторной обработки, которые могут быть разрешены операционной системой, и передача follow_symlinks=False отключается после всех точек суррогатной повторной обработки имен. Если операционная система достигает точки переразбора, за которой она не в состоянии следовать, stat теперь возвращает информация для оригинального пути, как будто follow_symlinks=False был определен вместо того, чтобы поднять ошибку.

class os.stat_result

Объект, атрибуты которого примерно соответствует элементам структуры the:c:type:stat. Это используемый для результата os.stat(), os.fstat() и os.lstat().

Атрибуты:

st_mode

Режим файла: тип файла и биты режима файла (разрешения).

st_ino

Зависящий от платформы, но ненулевой, однозначно идентифицирует файл для данного значение st_dev. Typically:

  • inode число на Unix,
  • file index на Windows
st_dev

Идентификатор устройства, на котором находится этот файл.

Количество жестких связей.

st_uid

Идентификатор пользователя владельца файла.

st_gid

Идентификатор группы владельца файла.

st_size

Размер файла в байтах, если это обычный файл или символическая ссылка. Размер символической ссылки - это длина содержащегося в ней имени пути без завершающего нулевого байта.

Отметка времени:

st_atime

Время последнего доступа, выраженное в секундах.

st_mtime

Время последнего изменения содержимого, выраженное в секундах.

st_ctime

Зависит от платформы:

  • время последнего изменения метаданных в Unix,
  • время создания в Windows, выраженное в секундах.
st_atime_ns

Время последнего доступа, выраженное в наносекундах как целое число.

st_mtime_ns

Время последней модификации содержимого, выраженное в наносекундах как целое число.

st_ctime_ns

Зависит от платформы:

  • время последнего изменения метаданных в Unix,
  • время создания в Windows, выраженное в наносекундах как целое число.

Примечание

Точное значение и разрешение st_atime, st_mtime и st_ctime атрибуты зависят от операционной системы и файловой системы. Например, в системах Windows, использующих файловые системы FAT или FAT32, у st_mtime 2-секундное разрешение, а у st_atime - только 1-дневное. Дополнительные сведения см. в документации по операционной системе.

Аналогично, хотя st_atime_ns, st_mtime_ns и st_ctime_ns всегда выражены в наносекундах, многие системы не обеспечивают наносекундную точность. В системах, которые обеспечивают наносекундную точность, объект с плавающей запятой используемый для хранения st_atime, st_mtime и st_ctime не может сохранить все это и как таковое будет немного неточным. Если вам нужны точные метки времени, вы всегда должны использовать st_atime_ns, st_mtime_ns и st_ctime_ns.

В некоторых Unix-системах (например, Linux) также могут быть доступны следующие атрибуты:

st_blocks

Количество 512-байтовых блоков, выделенных для файла. Это может быть меньше, чем st_size/512, когда файл имеет отверстия.

st_blksize

«Предпочтительный» размер блокировки для эффективного I/O файловой системы. Письмо файлу в меньшем чанки может вызвать неэффективное, «прочитанное, изменяют, переписывают».

st_rdev

Тип устройства, если устройство inode.

st_flags

Пользовательские флаги для файла.

В других системах Unix (таких как FreeBSD) могут быть доступны следующие атрибуты (но могут быть заполнены, только если root попытается их использовать):

st_gen

Номер создания файла.

st_birthtime

Время создания файла.

На Solaris и производных также могут быть доступны следующие атрибуты:

st_fstype

Строка, однозначно определяющая тип файловой системы, содержащей файл.

В системах Mac OS также могут быть доступны следующие атрибуты:

st_rsize

Реальный размер файла.

st_creator

Создатель файла.

st_type

Тип файла.

В системах Windows также доступны следующие атрибуты:

st_file_attributes

Файл Windows атрибуты: dwFileAttributes член структуры BY_HANDLE_FILE_INFORMATION возвращенный по GetFileInformationByHandle(). См. константы FILE_ATTRIBUTE_* в модуле stat.

st_reparse_tag

Если st_file_attributes имеет набор FILE_ATTRIBUTE_REPARSE_POINT, это поле содержит тег, идентифицирующий тип точки повторной обработки. См. константы IO_REPARSE_TAG_* в модуле stat.

Стандартный stat модуля определяет функции и константы, которые полезны для извлечения информации от a:c:type:stat структуры. (В Windows некоторые элементы заполнены фиктивным значения.

Для обратной совместимости stat_result сущность также доступен как кортеж по крайней мере 10 целых чисел, дающих самое важное (и портативный) члены the:c:type:stat структуры в приказе st_mode, st_ino, st_dev, st_nlink, st_uid, st_gid, st_size, st_atime, st_mtime, st_ctime. В конце некоторых реализаций может быть добавлено больше элементов. Для совместимости со старыми версиями Python, доступ к stat_result в виде кортежа всегда возвращает целые числа.

Добавлено в версии 3.3: Добавлены элементы st_atime_ns, st_mtime_ns и st_ctime_ns.

Добавлено в версии 3.5: Добавлен член st_file_attributes в Windows.

Изменено в версии 3.5: Windows теперь возвращает индекс файла как st_ino, когда доступно.

Добавлено в версии 3.7: Добавил элемент st_fstype в Solaris/производные.

Добавлено в версии 3.8: Добавлен член st_reparse_tag в Windows.

Изменено в версии 3.8: Теперь в Windows член st_mode идентифицирует специальные файлы как S_IFCHR, S_IFIFO или S_IFBLK.

os.statvfs(path)

Выполнить системный вызов statvfs() на данном пути. возвращает значение - объект, атрибуты которого описывают файловую систему на данном пути и соответствуют членам the:c:type:statvfs структуры, а именно: f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax, f_fsid.

Для битовых флагов f_flag атрибут определены две константы уровня модуля: если установлено значение ST_RDONLY, файловая система монтируется только для чтения, а если установлено значение ST_NOSUID, семантика битов setuid/setgid отключена или не поддерживается.

Для систем на основе GNU/glibc определены дополнительные константы уровня модуля. Это ST_NODEV (запретить доступ к специальным файлам устройства), ST_NOEXEC (запретить выполнение программы), ST_SYNCHRONOUS (записи синхронизируются сразу), ST_MANDLOCK (разрешить обязательные блокировки на FS), ST_WRITE (запись в файл/каталог/symlink), ST_APPEND (файл только для добавления), ST_IMMUTABLE (неизменяемый файл), ST_NOATIME (не обновлять время доступа), ST_NODIRATIME (не обновлять время доступа к каталогу), ST_RELATIME (обновить aUpdate

Эта функция может поддерживать указание файлового дескриптора.

Availability: Unix.

Изменено в версии 3.2: Были добавлены константы ST_RDONLY и ST_NOSUID.

Добавлено в версии 3.3: Добавлена поддержка указания path в качестве открытого файла дескриптор.

Изменено в версии 3.4: ST_NODEV, ST_NOEXEC, ST_SYNCHRONOUS, ST_MANDLOCK, ST_WRITE, ST_APPEND, ST_IMMUTABLE, ST_NOATIME, ST_NODIRATIME и константы ST_RELATIME были добавлены.

Изменено в версии 3.6: Принимает путеподобный объект.

Добавлено в версии 3.7: Добавлено f_fsid.

os.supports_dir_fd

Объект set, указывающий, какие функции в модуле os принимают открытый файл дескриптор для своего параметра dir_fd. Различные платформы обеспечивают различные особенности и основную функциональность, использование Python, чтобы осуществить параметр dir_fd не доступно на всех платформах поддержки Python. Для обеспечения согласованности функции, которые могут поддерживать dir_fd, всегда позволяют задавать параметр, но вызывают исключение, если функциональность является используемый, когда она не доступна локально. (Указание None для dir_fd всегда поддерживается на всех платформах.

Чтобы проверить, принимает ли определенная функция открытый файл дескриптор для своего параметра dir_fd, используйте оператор in на supports_dir_fd. Например, это выражение вычисляет значение True, если os.stat() принимает открытый файл дескрипторы для dir_fd на платформе локальная:

os.stat in os.supports_dir_fd

В настоящее время dir_fd параметры работают только на платформах Unix; ни один из них не работает в Windows.

Добавлено в версии 3.3.

os.supports_effective_ids

Объект set, указывающий, разрешает ли os.access() указывать True для своего параметра effective_ids на платформе локальная. (Указание False для effective_ids всегда поддерживается на всех платформах.) если платформа локальная поддерживает его, коллекция будет содержать os.access(); в противном случае он будет пустым.

Это выражение вычисляется как True, если os.access() поддерживает effective_ids=True на платформе локальная:

os.access in os.supports_effective_ids

В настоящее время effective_ids поддерживается только на платформах Unix; он не работает в Windows.

Добавлено в версии 3.3.

os.supports_fd

Объект set, указывающий, какие функции в модуле os позволяют задавать их параметр path в качестве открытого файла дескриптор на платформе локальная. Различные платформы обеспечивают различные особенности и основную функциональность использование Python, чтобы принять открытый файл дескрипторы, поскольку аргументы path не доступны на всех платформах поддержки Python.

Чтобы определить, позволяет ли конкретная функция указать открытый файл дескриптор для своего параметра path, используйте оператор in на supports_fd. Например, это выражение вычисляет значение True, если os.chdir() принимает открытый файл дескрипторы для path на вашей платформе локальная:

os.chdir in os.supports_fd

Добавлено в версии 3.3.

Объект set, указывающий, какие функции в модуле os принимают False для своего параметра follow_symlinks на платформе локальная. Различные платформы обеспечивают различные особенности и основную функциональность, использование Python, чтобы осуществить follow_symlinks не доступно на всех платформах поддержки Python. Для обеспечения согласованности функции, которые могут поддерживать follow_symlinks, всегда позволяют задавать параметр, но вызывают исключение, если функциональность является используемый, когда она не доступна локально. (Указание True для follow_symlinks всегда поддерживается на всех платформах.

Чтобы проверить, принимает ли определенная функция False для своего параметра follow_symlinks, используйте оператор in на supports_follow_symlinks. Например, это выражение вычисляется как True, если можно указать follow_symlinks=False при вызове os.stat() на платформе локальная:

os.stat in os.supports_follow_symlinks

Добавлено в версии 3.3.

Создать символическую ссылку, указывающую на src с именем dst.

В Windows symlink представляет файл или каталог и динамически не переносится на конечный объект. Если цель присутствует, будет создан тип symlink для соответствия. В противном случае, symlink будет создан как каталог, если target_is_directory является True или файл symlink (по умолчанию) в противном случае. На платформах, отличных от Windows, target_is_directory игнорируется.

Эта функция может поддерживать пути относительно дескрипторов каталогов.

Примечание

В более новых версиях Windows 10 непривилегированные учетные записи могут создавать ссылки, если включен режим разработчика. Если режим разработчика недоступен/включен, требуется привилегия SeCreateSymbolicLinkPrivilege или процесс должен быть запущен от имени администратора.

OSError возникает при вызове функции непривилегированным пользователем.

Raises an auditing event os.symlink with arguments src, dst, dir_fd.

Availability: Unix, Windows.

Изменено в версии 3.2: Добавлена поддержка символических ссылок Windows 6.0 (Vista).

Добавлено в версии 3.3: Добавлен аргумент dir_fd, а теперь разрешен target_is_directory на платформах, отличных от Windows.

Изменено в версии 3.6: Принимает путеподобный объект для src и dst.

Изменено в версии 3.8: Добавлена поддержка невыделенных symlinks в Windows с режимом разработчика.

os.sync()

Принудительная запись всего на диск.

Availability: Unix.

Добавлено в версии 3.3.

os.truncate(path, length)

Усечь файл, соответствующий path, чтобы он имел размер не более length байт.

Эта функция может поддерживать указание файлового дескриптора.

Raises an auditing event os.truncate with arguments path, length.

Availability: Unix, Windows.

Добавлено в версии 3.3.

Изменено в версии 3.5: Добавлена поддержка Windows

Изменено в версии 3.6: Принимает путеподобный объект.

Удалите (удалите) файл path. Эта функция семантически идентична remove(); название unlink является его традиционным именем Unix. Пожалуйста, см. документацию для remove() для получения дополнительной информации.

Raises an auditing event os.remove with arguments path, dir_fd.

Добавлено в версии 3.3: Параметр dir_fd.

Изменено в версии 3.6: Принимает путеподобный объект.

os.utime(path, times=None, *, [ns, ]dir_fd=None, follow_symlinks=True)

Задать время доступа и изменения файла, указанного параметром path.

utime() принимает два необязательных параметра: times и ns. Они определяют набор времен на path и являются используемый как follows:

  • Если задано значение ns, он должен быть 2-кортежем формы (atime_ns, mtime_ns), где каждый член является int, выражающим наносекунды.
  • Если times не является None, он должен быть 2-кортежем формы (atime, mtime), где каждый член является int или float, выражающим секунды.
  • Если times является None и ns не указан, это эквивалентно указанию ns=(atime_ns, mtime_ns), где оба времени являются текущим временем.

Ошибка при указании кортежей как для times, так и для ns.

Обратите внимание, что точное время, которое вы устанавливаете здесь, может не быть возвращенный последующим требованием stat(), в зависимости от резолюции, с которой ваша операционная система делает запись времена модификации и доступа; см. stat(). Лучший способ сохранить точное время - использовать поля st_atime_ns и st_mtime_ns из объекта os.stat() result с параметром ns в „utime“.

Эта функция может поддерживать указание файлового дескриптора, пути относительно дескрипторов каталогов и не следуя символическим ссылкам.

Raises an auditing event os.utime with arguments path, times, ns, dir_fd.

Добавлено в версии 3.3: Добавлена поддержка задания path в качестве открытого файла дескриптор, а также параметров dir_fd, follow_symlinks и ns.

Изменено в версии 3.6: Принимает путеподобный объект.

os.walk(top, topdown=True, onerror=None, followlinks=False)

Создать имена файлов в дереве каталогов путем перехода по дереву сверху вниз или снизу вверх. Для каждого справочника в дереве, внедренном в каталоге top (включая сам top), это приводит к (dirpath, dirnames, filenames) с 3 кортежами.

dirpath — строка, путь к директории. dirnames — это список имен подкаталогов в dirpath (исключая '.' и '..'). filenames — это список имен файлов, не относящихся к каталогам, в dirpath. Обратите внимание, что имена в списках не содержат компонентов пути. Чтобы получить полный путь (который начинается с top) к файлу или каталогу в dirpath, выполните os.path.join(dirpath, name). Сортировка списков зависит от файловой системы. Если файл удаляется из каталога dirpath или добавляется в него во время создания списков, не указано, будет ли включено имя для этого файла.

Если дополнительный аргумент, topdown - True или не определенный, тройное для справочника, произведен перед утраиванием для какого-либо из его подкаталогов (справочники произведены сверху вниз). Если topdown является False, тройка для каталога генерируется после троек для всех его подкаталогов (каталоги генерируются снизу вверх). Независимо от значение topdown список подкаталогов извлекается перед созданием кортежей для каталога и его подкаталогов.

Когда topdown является True, вызывающий абонент может изменить список dirnames на месте (возможно, используя назначение del или срезов), и walk() будет рекурсировать только в подкаталогах, имена которых остаются в dirnames; это может быть используемый, чтобы сократить поиск, наложить определенный заказ посещения или даже сообщить walk() о справочниках, посетитель создает или переименовывает перед ним возобновляет walk() снова. Изменение dirnames, когда topdown является False, не влияет на поведение обхода, поскольку в режиме снизу вверх каталоги в dirnames генерируются перед созданием самого dirpath.

По умолчанию ошибки из вызова scandir() игнорируются. Если указан дополнительный аргумент onerror, он должен быть функцией; он будет вызван с одним аргументом, OSError сущность. Он может сообщить об ошибке для продолжения обхода или вызвать исключение для прерывания обхода. Обратите внимание, что имя файла доступно в качестве filename атрибут объекта исключения.

По умолчанию walk() не будет переходить к символьным ссылкам, которые разрешаются в каталогах. followlinks набора к True, чтобы посетить справочники, на которые указывает symlinks, на системах, которые поддерживают их.

Примечание

Знайте, что настройка followlinks к True может привести к бесконечной рекурсии, если ссылка указывает на родительский каталог себя. walk() не отслеживает уже посещенные каталоги.

Примечание

При передаче относительного пути не изменяйте текущий рабочий каталог между возобновлениями walk(). walk() никогда не изменяет текущий каталог и предполагает, что его вызывающий абонент тоже.

В этом примере показано количество байтов, взятых файлами, не являющимися каталогами, в каждом каталоге в начальной папке, за исключением того, что он не просматривается ни в одном подкаталоге CVS:

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
    print(root, "consumes", end=" ")
    print(sum(getsize(join(root, name)) for name in files), end=" ")
    print("bytes in", len(files), "non-directory files")
    if 'CVS' in dirs:
        dirs.remove('CVS')  # не посещать каталоги CVS

В следующем примере (простая реализация shutil.rmtree()) необходимо пройти дерево снизу вверх, rmdir() не позволяет удалить каталог до того, как каталог будет пустым:

# Удаление всех доступных из каталога, указанного в "top", при условии отсутствия
# символических ссылок. Это опасно! Например, если top = = '/', он может удалить
# все файлы диска.
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

Изменено в версии 3.5: Эта функция теперь вызывает os.scandir() вместо os.listdir(), что делает его быстрее, уменьшая число вызовов os.stat().

Изменено в версии 3.6: Принимает путеподобный объект.

os.fwalk(top='.', topdown=True, onerror=None, *, follow_symlinks=False, dir_fd=None)

Это ведет себя точно так же, как walk(), за исключением того, что он дает 4-кортежный (dirpath, dirnames, filenames, dirfd), и он поддерживает dir_fd.

dirpath, dirnames и filenames идентичны walk() выводу, а dirfd является файлом дескриптор, ссылающимся на каталог dirpath.

Эта функция всегда поддерживает пути относительно дескрипторов каталогов и не следуя символическим ссылкам. Обратите внимание однако, что, в отличие от других функций, дефолт fwalk() значение для follow_symlinks - False.

Примечание

Поскольку fwalk() дает файл дескрипторы, они действительны только до следующего шага итерации, поэтому следует дублировать их (например, с dup()), если вы хотите сохранить их дольше.

В этом примере показано количество байтов, взятых файлами, не являющимися каталогами, в каждом каталоге в начальной папке, за исключением того, что он не просматривается ни в одном подкаталоге CVS:

import os
for root, dirs, files, rootfd in os.fwalk('python/Lib/email'):
    print(root, "consumes", end="")
    print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]),
          end="")
    print("bytes in", len(files), "non-directory files")
    if 'CVS' in dirs:
        dirs.remove('CVS')  # не посещать каталоги CVS

В следующем примере необходимо пройти дерево снизу вверх: rmdir() не позволяет удалить каталог до того, как каталог будет пустым:

# Удалить все доступное из каталога, указанного в "top", при условии отсутствия
# символических ссылок. Это опасно! Например, если top = = '/', он может удалить
# все файлы диска.
import os
for root, dirs, files, rootfd in os.fwalk(top, topdown=False):
    for name in files:
        os.unlink(name, dir_fd=rootfd)
    for name in dirs:
        os.rmdir(name, dir_fd=rootfd)

Availability: Unix.

Добавлено в версии 3.3.

Изменено в версии 3.6: Принимает путеподобный объект.

Изменено в версии 3.7: Добавлена поддержка bytes путей.

os.memfd_create(name[, flags=os.MFD_CLOEXEC])

Создать анонимный файл и возвращает файл дескриптор, который ссылается на него. flags должна быть одной из доступных в системе констант os.MFD_* (или их побитовой комбинацией ORed). По умолчанию новый файл дескриптор имеет значение non-inheritable.

Имя, поставляемое в name, является используемый как именем файла и будет показано как цель соответствующей символической ссылки в каталоге /proc/self/fd/. Отображаемое имя всегда имеет префикс memfd: и служит только для отладки. Имена не влияют на поведение файла дескриптор, и, как таковые, несколько файлов могут иметь одно и то же имя без каких-либо побочных эффектов.

Availability: Linux 3.17 или новее с glibc 2.27 или новее.

Добавлено в версии 3.8.

os.MFD_CLOEXEC
os.MFD_ALLOW_SEALING
os.MFD_HUGETLB
os.MFD_HUGE_SHIFT
os.MFD_HUGE_MASK
os.MFD_HUGE_64KB
os.MFD_HUGE_512KB
os.MFD_HUGE_1MB
os.MFD_HUGE_2MB
os.MFD_HUGE_8MB
os.MFD_HUGE_16MB
os.MFD_HUGE_32MB
os.MFD_HUGE_256MB
os.MFD_HUGE_512MB
os.MFD_HUGE_1GB
os.MFD_HUGE_2GB
os.MFD_HUGE_16GB

Эти флаги могут быть переданы memfd_create().

Availability: Linux 3.17 or newer with glibc 2.27 or newer. The Флаги MFD_HUGE* доступны только с Linux 4.14.

Добавлено в версии 3.8.

Linux расширил атрибуты

Добавлено в версии 3.3.

Все эти функции доступны только в Linux.

os.getxattr(path, attribute, *, follow_symlinks=True)

Возвращает значение расширенной файловой системы атрибут attribute для path. attribute может быть байтами или str (прямо или косвенно через интерфейс PathLike). Если это str, он кодированный с файловой системой кодировка.

Эта функция может поддерживать указание файлового дескриптора и не следуя символическим ссылкам.

Raises an auditing event os.getxattr with arguments path, attribute.

Изменено в версии 3.6: Принимает путеподобный объект для path и attribute.

os.listxattr(path=None, *, follow_symlinks=True)

Возвращает список расширенной файловой системы атрибуты на path. атрибуты в списке представлены как строки декодированные с помощью файловой системы кодировка. Если path является None, listxattr() проверит текущий каталог.

Эта функция может поддерживать указание файлового дескриптора и не следуя символическим ссылкам.

Raises an auditing event os.listxattr with argument path.

Изменено в версии 3.6: Принимает путеподобный объект.

os.removexattr(path, attribute, *, follow_symlinks=True)

Удаляет расширенную файловую систему атрибут attribute из path. attribute должны быть байтами или str (прямо или косвенно через интерфейс PathLike). Если это строка, он кодированный с файловой системой кодировка.

Эта функция может поддерживать указание дескриптора файла и не следуя символическим ссылкам.

Raises an auditing event os.removexattr with arguments path, attribute.

Изменено в версии 3.6: Принимает путеподобный объект для path и attribute.

os.setxattr(path, attribute, value, flags=0, *, follow_symlinks=True)

Установить для расширенной файловой системы атрибут attribute на path значение value. attribute должен быть байтами или звездой без встроенных NUL (прямо или косвенно через интерфейс PathLike). Если это str, он кодированный с файловой системой кодировка. flags может быть XATTR_REPLACE или XATTR_CREATE. Если XATTR_REPLACE задан, а атрибут не существует, EEXISTS будет поднят. Если XATTR_CREATE будет дан, и атрибут уже существует, то атрибут не будет создан, и ENODATA будет поднят.

Эта функция может поддерживать указание файлового дескриптора и не следуя символическим ссылкам.

Примечание

Ошибка в версиях ядра Linux менее 2.6.39 привела к игнорированию аргумента флагов в некоторых файловых системах.

Raises an auditing event os.setxattr with arguments path, attribute, value, flags.

Изменено в версии 3.6: Принимает путеподобный объект для path и attribute.

os.XATTR_SIZE_MAX

Максимальный размер значение расширенного атрибут. В настоящее время это 64 KiB в Linux.

os.XATTR_CREATE

Это - возможный значение для аргумента флагов в setxattr(). Это означает, что операция должна создать атрибут.

os.XATTR_REPLACE

Это - возможный значение для аргумента флагов в setxattr(). Это означает, что операция должна заменить существующий атрибут.

Управление процессами

Эти функции могут быть используемый, чтобы создать и справиться с процессами.

Различные функции exec* получают список аргументов для новой программы, загруженной в процесс. В каждом случае первый из этих аргументов передается новой программе как собственное имя, а не как аргумент, который пользователь мог ввести в командной строке. Для программиста C это - argv[0], переданный к программе main(). Например, os.execv('/bin/echo', ['foo', 'bar']) только напечатает bar на стандартный вывод; foo, похоже, будет проигнорирован.

os.abort()

Создать сигнал SIGABRT для текущего процесса. На Unix поведение по умолчанию состоит в том, чтобы произвести основной дамп; в Windows процесс немедленно возвращает выход код 3. Знайте, что вызывание этой функции не назовет сигнал обработчик Python зарегистрированным для SIGABRT в signal.signal().

os.add_dll_directory(path)

Добавлена путь к пути поиска DLL.

Этот путь поиска является используемый при разрешении зависимостей для импортированных модулей расширения (сам модуль разрешается через sys.path), а также по ctypes.

Удалите каталог, вызвав close() на объекте возвращенный или используя его в with инструкция.

Дополнительные сведения о загрузке Microsoft documentation см. в разделе DLL.

Raises an auditing event os.add_dll_directory with argument path.

Availability: Windows.

Добавлено в версии 3.8: Предыдущие версии CPython разрешали бы DLL, используя поведение по умолчанию для текущего процесса. Это привело к несоответствиям, таким как только иногда поиск PATH или текущего рабочего каталога, и функции оС, такие как AddDllDirectory, не имеющие эффекта.

В 3.8 два основных способа загрузки DLL теперь явно переопределяют поведение в рамках всего процесса для обеспечения согласованности. Сведения об обновлении библиотек см. в разделе замечания по портированию.

os.execl(path, arg0, arg1, ...)
os.execle(path, arg0, arg1, ..., env)
os.execlp(file, arg0, arg1, ...)
os.execlpe(file, arg0, arg1, ..., env)
os.execv(path, args)
os.execve(path, args, env)
os.execvp(file, args)
os.execvpe(file, args, env)

Все эти функции выполняют новую программу, заменяя текущий процесс; они не возвращает. В Unix новый исполняемый файл загружается в текущий процесс и будет иметь тот же идентификатор процесса, что и вызывающий. Ошибки будут регистрироваться как исключения OSError.

Текущий процесс немедленно заменяется. Открытые объекты файла и дескрипторы не смываются, поэтому если могут быть данные, буферизованные на этих открытых файлах, вы должны смыть их использующий sys.stdout.flush() или os.fsync() прежде, чем вызвать функцию exec*.

Варианты «l» и «v» функций exec* отличаются тем, как передаются аргументы командной строки. Варианты «l», пожалуй, проще всего работать с, если число параметров фиксировано при записи код; отдельные параметры просто становятся дополнительными параметрами функций execl*(). Варианты «v» хороши, когда число параметров является переменным, причем аргументы передаются в списке или кортеже в качестве параметра args. В любом случае аргументы дочернего процесса должны начинаться с имени выполняемой команды, но это не принудительно.

Варианты, которые включают в себя «p» ближе к концу (execlp(), execlpe(), execvp() и execvpe()), будут использовать переменную среды PATH для определения местоположения программы file. То, когда окружающая среда заменяется (использование одного из вариантов exec*e, обсудило в следующем параграфе), новая окружающая среда - используемый как источник переменной PATH. Другие варианты, execl(), execle(), execv() и execve(), не будут использовать переменную PATH для поиска исполняемого файла; path должен содержать соответствующий абсолютный или относительный путь.

Для execle(), execlpe(), execve() и execvpe() (обратите внимание, что все они заканчиваются на «e») параметр env должен быть отображением, которое является используемый для определения переменных среды для нового процесса (они являются используемый вместо среды текущего процесса); функции execl(), execlp(), execv() и execvp() - все это приводит к тому, что новый процесс наследует среду текущего процесса.

Для execve() на некоторых платформах, path также может быть указан как открытый файл дескриптор. Эта функция может не поддерживаться на вашей платформе; можно проверить, доступна ли она с помощью команды os.supports_fd. Если он недоступен, его использование приведет к появлению NotImplementedError.

Raises an auditing event os.exec with arguments path, args, env.

Availability: Unix, Windows.

Добавлено в версии 3.3: Добавлена поддержка указания path в качестве открытого файла дескриптор для execve().

Изменено в версии 3.6: Принимает путеподобный объект.

os._exit(n)

Выйти из процесса со статусом n, не называя очистку обработчики, смыв stdio буфера, и т.д.

Примечание

Стандартный способ выхода - sys.exit(n). _exit() должен обычно только быть используемый в дочернем процессе после fork().

Следующие коды выхода определены и могут быть используемый с _exit(), хотя они не требуются. Они обычно являются используемый для системных программ, написанных на языке Python, таких как программа доставки внешних команд почтового сервера.

Примечание

Некоторые из них могут быть недоступны на всех платформах Unix, так как существуют некоторые варианты. Эти константы определяются там, где они определяются базовой платформой.

os.EX_OK

Выход код означает отсутствие ошибок.

Availability: Unix.

os.EX_USAGE

Выйти из код, который означает, что команда была используемый неправильно, такой как тогда, когда неправильное количество аргументов дано.

Availability: Unix.

os.EX_DATAERR

Выход код означает, что входные данные неверны.

Availability: Unix.

os.EX_NOINPUT

Выход код означает, что входной файл не существует или недоступен для чтения.

Availability: Unix.

os.EX_NOUSER

Выход код означает, что указанный пользователь не существует.

Availability: Unix.

os.EX_NOHOST

Выход код означает, что указанный узел не существует.

Availability: Unix.

os.EX_UNAVAILABLE

Выход код означает, что требуемая служба недоступна.

Availability: Unix.

os.EX_SOFTWARE

Выход код означает, что обнаружена внутренняя ошибка программного обеспечения.

Availability: Unix.

os.EX_OSERR

Выйти из код, который означает, что ошибка операционной системы была обнаружена, такие как неспособность придать форму вилки или создать пайп.

Availability: Unix.

os.EX_OSFILE

Выйти из код, который означает, что некоторый системный файл не существовал, не мог быть открыт или имел некоторый другой вид ошибки.

Availability: Unix.

os.EX_CANTCREAT

Выйти из код, который означает, что пользователь определил, что файл вывода не мог быть создан.

Availability: Unix.

os.EX_IOERR

Выйти из код, который означает, что ошибка произошла, делая I/O на некотором файле.

Availability: Unix.

os.EX_TEMPFAIL

Выйти из код, который означает, что временная неудача произошла. Это указывает на то, что на самом деле не может быть ошибкой, например, сетевое подключение, которое не может быть установлено во время повторной операции.

Availability: Unix.

os.EX_PROTOCOL

Выход код означает, что обмен протоколами был недопустимым, недопустимым или непонятным.

Availability: Unix.

os.EX_NOPERM

Выйти из код, который означает, что были недостаточные разрешения выполнить операцию (но не предназначенные для проблем файловой системы).

Availability: Unix.

os.EX_CONFIG

Выход код означает, что произошла какая-то ошибка конфигурации.

Availability: Unix.

os.EX_NOTFOUND

Выйти из код, который означает, что что-то как «вход не было найдено».

Availability: Unix.

os.fork()

Разворачивайте дочерний процесс. Возвращает 0 в потомке и идентификатор процесса ребенка в родителе. Если ошибка происходит, OSError поднят.

Обратите внимание, что некоторые платформы, включая FreeBSD < = 6.3 и Cygwin, имеют известные проблемы при использовании fork() из поток.

Raises an auditing event os.fork with no arguments.

Изменено в версии 3.8: Запрос fork() в подпереводчике больше не поддерживается (RuntimeError поднят).

Предупреждение

См. раздел ssl для приложений, использующих модуль SSL с вилкой ().

Availability: Unix.

os.forkpty()

Форсирование дочернего процесса с использованием нового псевдотерминала в качестве управляющего терминала ребенка. Возвращает пара (pid, fd), где pid является 0 в дочернем элементе, идентификатор процесса нового дочернего элемента в родительском элементе и fd является файлом дескриптор главного конца псевдотерминала. Для более портативного подхода используйте модуль pty. Если ошибка происходит, OSError поднят.

Raises an auditing event os.forkpty with no arguments.

Изменено в версии 3.8: Запрос forkpty() в подпереводчике больше не поддерживается (RuntimeError поднят).

Availability: некоторые разновидности Unix.

os.kill(pid, sig)

Подать сигнал sig в технологический процесс pid. Константы для конкретных сигналов, доступных на платформе хоста, определяются в модуле signal.

Windows: сигналы signal.CTRL_C_EVENT и signal.CTRL_BREAK_EVENT - это специальные сигналы, которые могут передаваться только в консольные процессы, которые имеют общее окно консоли, например, некоторые подпроцессы. Любой другой значение для sig заставит процесс быть безоговорочно убитым TerminateProcess API и выходом, код будет установлен в sig. Для Windows-версии kill() дополнительно используются дескрипторы процессов, которые должны быть уничтожены.

См. также раздел signal.pthread_kill().

Raises an auditing event os.kill with arguments pid, sig.

Добавлено в версии 3.2: Поддержка Windows.

os.killpg(pgid, sig)

Отправьте сигнал sig в группу процессов pgid.

Raises an auditing event os.killpg with arguments pgid, sig.

Availability: Unix.

os.nice(increment)

Добавлена increment к «милости» процесса. Возвращает новой милости.

Availability: Unix.

os.plock(op)

Блокировка сегментов программы в памяти. значение op (определенный в <sys/lock.h>) определяет, какие сегменты заперты.

Availability: Unix.

os.popen(cmd, mode='r', buffering=-1)

Откройте команду пайп в или из команды cmd. возвращает значение - открытый объект файла, связанный с пайп, который может быть прочитан или написан в зависимости от того, является ли mode 'r' (дефолт) или 'w'. Аргумент buffering имеет то же значение, что и соответствующий аргумент встроенной функции open(). Объект возвращенный file считывает или записывает текст строки, а не байты.

возвращает None метода close, если подпроцессы вышел успешно, или подпроцессы возвращает код, если была ошибка. В системах POSIX, если возвращает код является положительным, он представляет возвращает значение процесса, сдвинутого влево на один байт. Если возвращает код отрицателен, процесс был закончен сигналом, данным инвертированным значение возвращает код. (Например, возвращает значение может быть - signal.SIGKILL, если подпроцессы был убит.) на системах Windows возвращает значение содержит подписанный целочисленный возвращает код от дочернего процесса.

Это реализуется с использованием subprocess.Popen; см. документацию этого класса для получения более эффективных способов управления подпроцессами и взаимодействия с ними.

os.posix_spawn(path, argv, env, *, file_actions=None, setpgroup=None, resetids=False, setsid=False, setsigmask=(), setsigdef=(), scheduler=None)

Заключает в себя API библиотеки posix_spawn() C для использования из Python.

Большинство пользователей должны использовать subprocess.run() вместо posix_spawn().

Только позиционные аргументы path, args и env похожи на execve().

Параметр path — путь к исполняемому файлу. path должен содержать каталог. Используйте команду posix_spawnp() для передачи исполняемого файла без каталога.

Аргумент file_actions может быть последовательностью кортежей, описывающих действия, чтобы взять определенный файл дескрипторы в дочернем процессе между шагами fork() и exec() внедрения библиотеки C. Первый элемент в каждом кортеже должен быть одним из трех перечисленных ниже индикаторов типа, описывающих остальные элементы кортежа:

os.POSIX_SPAWN_OPEN

(os.POSIX_SPAWN_OPEN, fd, path, flags, mode)

Выполняет os.dup2(os.open(path, flags, mode), fd).

os.POSIX_SPAWN_CLOSE

(os.POSIX_SPAWN_CLOSE, fd)

Выполняет os.close(fd).

os.POSIX_SPAWN_DUP2

(os.POSIX_SPAWN_DUP2, fd, new_fd)

Выполняет os.dup2(fd, new_fd).

Эти кортежи соответствуют библиотеке C posix_spawn_file_actions_addopen(), posix_spawn_file_actions_addclose() и posix_spawn_file_actions_adddup2() API звонит, используемый, чтобы подготовиться к posix_spawn() называют себя.

Аргумент setpgroup установит группу процесса ребенка к определенному значение. Если определенный значение будет 0, то удостоверение личности группы процесса ребенка будет сделано тем же как своим ID процесса. Если значение setpgroup не будет установлен, то ребенок унаследует удостоверение личности группы процесса родителя. Этот аргумент соответствует флагу POSIX_SPAWN_SETPGROUP библиотеки C.

Если аргументом resetids будет True, то он перезагрузит эффективный UID и цЕНУРОЗ ребенка к реальному UID и цЕНУРОЗ родительского процесса. Если аргумент имеет значение False, то нижестоящий элемент сохраняет действующий UID и GID родительского элемента. В любом случае, если в исполняемом файле включены биты разрешений set-user-ID и set-group-ID, их действие переопределит установку действующих UID и GID. Этот аргумент соответствует флагу POSIX_SPAWN_RESETIDS библиотеки C.

Если аргументом setsid будет True, то он создаст новый ID сессии для „posix_spawn“. Для setsid требуется флаг POSIX_SPAWN_SETSID или POSIX_SPAWN_SETSID_NP. В противном случае NotImplementedError поднимается.

Аргумент setsigmask устанавливает маску сигнала в указанный набор сигналов. Если параметр не является используемый, нижестоящий элемент наследует маску сигнала родительского элемента. Этот аргумент соответствует флагу POSIX_SPAWN_SETSIGMASK библиотеки C.

Аргумент sigdef сбрасывает расположение всех сигналов в указанном наборе. Этот аргумент соответствует флагу POSIX_SPAWN_SETSIGDEF библиотеки C.

Аргумент scheduler должен быть кортежем, содержащим (необязательную) политику планировщика и сущность sched_param с параметрами планировщика. значение None вместо политики планировщика указывает, что это не обеспечивается. Этот аргумент представляет собой комбинацию флагов библиотеки C POSIX_SPAWN_SETSCHEDPARAM и POSIX_SPAWN_SETSCHEDULER.

Raises an auditing event os.posix_spawn with arguments path, argv, env.

Добавлено в версии 3.8.

Availability: Unix.

os.posix_spawnp(path, argv, env, *, file_actions=None, setpgroup=None, resetids=False, setsid=False, setsigmask=(), setsigdef=(), scheduler=None)

Заключает в себя API библиотеки posix_spawnp() C для использования из Python.

Аналогично posix_spawn(), за исключением того, что система выполняет поиск файла executable в списке каталогов, заданных переменной среды PATH (аналогично execvp(3)).

Raises an auditing event os.posix_spawn with arguments path, argv, env.

Добавлено в версии 3.8.

Availability: См. документацию posix_spawn()

os.register_at_fork(*, before=None, after_in_parent=None, after_in_child=None)

Зарегистрируйте callables, который будет выполнен, когда новому дочернему процессу придадут форму вилки, используя os.fork() или подобные API клонирования процесса. Параметры являются необязательными и ключевой-only. Каждый из них определяет отдельный пункт вызова.

  • before - это функция, вызываемая перед форсированием дочернего процесса.
  • after_in_parent - это функция, вызываемая из родительского процесса после форсирования дочернего процесса.
  • after_in_child является функцией, вызываемой из дочернего процесса.

Эти звонки только сделаны, если контроль ожидается к возвращает к Python интерпретатор. Типичный запуск subprocess не запускает их, так как потомок не собирается повторно входить в интерпретатор.

Функции, зарегистрированные для выполнения перед форкингом, вызываются в обратном порядке регистрации. Функции, зарегистрированные для выполнения после форкинга (либо в родительском, либо в дочернем), вызываются в порядке регистрации.

Обратите внимание, что звонки fork(), сделанные третьим лицом к, код может не вызвать те функции, если он явно не называет PyOS_BeforeFork(), PyOS_AfterFork_Parent() и PyOS_AfterFork_Child().

Нет способа отменить регистрацию функции.

Availability: Unix.

Добавлено в версии 3.7.

os.spawnl(mode, path, ...)
os.spawnle(mode, path, ..., env)
os.spawnlp(mode, file, ...)
os.spawnlpe(mode, file, ..., env)
os.spawnv(mode, path, args)
os.spawnve(mode, path, args, env)
os.spawnvp(mode, file, args)
os.spawnvpe(mode, file, args, env)

Выполнить программу path в новом процессе.

(Обратите внимание, что модуль subprocess обеспечивает более мощные средства для создания новых процессов и получения их результатов; использование этого модуля является предпочтительным для использования этих функций. Проверьте, в частности, раздел Замена старых функций модуля subprocess.)

Если mode является P_NOWAIT, эта функция возвращает идентификатор нового процесса; если mode - P_WAIT, возвращает выход процесса код, если он обычно выходит, или -signal, где signal - сигнал, который убил процесс. В Windows идентификатор процесса фактически будет дескриптором процесса, поэтому его можно используемый с помощью функции waitpid().

Примечание по VxWorks, эта функция не делает возвращает -signal, когда новый процесс убит. Вместо этого возникает исключение OSError.

Варианты «l» и «v» функций spawn* отличаются тем, как передаются аргументы командной строки. Варианты «l», пожалуй, проще всего работать с, если число параметров фиксировано при записи код; отдельные параметры просто становятся дополнительными параметрами функций spawnl*(). Варианты «v» хороши, когда число параметров является переменным, причем аргументы передаются в списке или кортеже в качестве параметра args. В любом случае аргументы дочернего процесса должны начинаться с имени выполняемой команды.

Варианты, которые включают в себя второй «p» ближе к концу (spawnlp(), spawnlpe(), spawnvp() и spawnvpe()), будут использовать переменную среды PATH для определения местоположения программы file. То, когда окружающая среда заменяется (использование одного из вариантов spawn*e, обсудило в следующем параграфе), новая окружающая среда - используемый как источник переменной PATH. Другие варианты, spawnl(), spawnle(), spawnv() и spawnve(), не будут использовать переменную PATH для поиска исполняемого файла; path должен содержать соответствующий абсолютный или относительный путь.

Для spawnle(), spawnlpe(), spawnve() и spawnvpe() (обратите внимание, что все они заканчиваются на «e») параметр env должен быть отображением, которое является используемый для определения переменных среды для нового процесса (они являются используемый вместо среды текущего процесса); функции spawnl(), spawnlp(), spawnv() и spawnvp() - все это приводит к тому, что новый процесс наследует среду текущего процесса. Обратите внимание, что ключи и значения в словаре env должны быть строки; недопустимые ключи или значения приведут к сбою функции с возвращает значение 127.

Например, следующие вызовы spawnlp() и spawnvpe() эквивалентны:

import os
os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')

L = ['cp', 'index.html', '/dev/null']
os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)

Raises an auditing event os.spawn with arguments mode, path, args, env.

Availability: Unix, Windows. spawnlp(), spawnlpe(), spawnvp() и spawnvpe() недоступны в Windows. spawnle() и spawnve() не потокобезопасной на Windows; советуем вместо этого использовать модуль subprocess.

Изменено в версии 3.6: Принимает путеподобный объект.

os.P_NOWAIT
os.P_NOWAITO

Возможные значения для параметра mode к семейству функций spawn*. Если любой из этих значения будет дан, то функции spawn*() будут возвращает, как только новый процесс был создан с id процесса как возвращает значение.

Availability: Unix, Windows.

os.P_WAIT

Возможные значение для параметра mode к семейству функций spawn*. Если это будет дано как mode, то функции spawn*() не будут возвращает, пока новый процесс не бежал к завершению, и будет возвращает выход код процесса, пробег успешен, или -signal, если сигнал убивает процесс.

Availability: Unix, Windows.

os.P_DETACH
os.P_OVERLAY

Возможные значения для параметра mode к семейству функций spawn*. Они менее портативны, чем перечисленные выше. P_DETACH аналогичен P_NOWAIT, но новый процесс отсоединяется от консоли вызывающего процесса. Если P_OVERLAY является используемый, текущий процесс будет заменен; функция spawn* не будет возвращает.

Availability: Windows.

os.startfile(path[, operation])

Запустите файл со связанным с ним приложением.

Когда operation не определен или 'open', это действует как двойной щелчок по файлу в Windows Explorer или предоставлению имени файла как аргумент команде start от интерактивной раковины команды: файл открыт с любым применением (если таковые имеются), его расширение связано.

Когда другой operation дан, это должен быть «глагол команды», который определяет то, что должно быть сделано с файлом. Распространенными глаголами, задокументированными Microsoft, являются 'print' и 'edit' (должны быть используемый в файлах), а также 'explore' и 'find' (должны быть используемый в каталогах).

startfile() возвращает сразу после запуска связанного приложения. Нет возможности дождаться закрытия приложения, и нет возможности получить состояние выхода приложения. Параметр path относится к текущему каталогу. Если вы хотите использовать абсолютный путь, удостоверьтесь, что первый символ не разрез ('/'); базовая функция Win32 ShellExecute() не работает, если это так. Используйте функцию os.path.normpath(), чтобы гарантировать, что путь - должным образом кодированный для Win32.

Чтобы уменьшить запуск интерпретатор наверху, функция Win32 ShellExecute() не решена, пока эта функция сначала не вызвана. Если функция не может быть разрешена, NotImplementedError будет вызван.

Raises an auditing event os.startfile with arguments path, operation.

Availability: Windows.

os.system(command)

Выполнить команду (a строка) в вложенной оболочке. Это осуществлено, назвав стандарт C функцией system() и имеет те же ограничения. Изменения в sys.stdin и т.д. не отражаются в среде выполняемой команды. Если command генерирует какой-либо выходной сигнал, он будет отправлен в стандартный выходной поток интерпретатор.

В Unix возвращает значение - это состояние выхода процесса кодированный в формате, указанном для wait(). Обратите внимание, что POSIX не определяет значение возвращает значение функции C system(), таким образом, возвращает значение функции Python зависим от системы.

В Windows возвращает значение - это возвращенный системной оболочкой после запуска command. Оболочка задаётся переменной среды Windows COMSPEC: она, как правило, является cmd.exe, что возвращает состояние выхода командного запуска; о системах, использующих неродную оболочку, см. документацию по оболочке.

Модуль subprocess обеспечивает более мощные средства для создания новых процессов и получения их результатов; использование этого модуля является предпочтительным для использования этой функции. Посмотрите раздел Замена старых функций модуля subprocess в документации subprocess для некоторых полезных рецептов.

Raises an auditing event os.system with argument command.

Availability: Unix, Windows.

os.times()

Возвращает текущее время глобального процесса. возвращает значение - это объект с пятью атрибуты:

  • user - пользовательское время
  • system - системное время
  • children_user - пользовательское время всех дочерних процессов
  • children_system - системное время всех дочерних процессов
  • elapsed - истекло в реальном времени с фиксированной точки в прошлом

Для обратной совместимости этот объект также ведет себя как пятикортеж, содержащий user, system, children_user, children_system и elapsed в таком порядке.

См. страницы руководства Unix times(2) и руководства times(3) в Unix или the GetProcessTimes MSDN в Windows. В Windows известны только user и system; остальные атрибуты равны нулю.

Availability: Unix, Windows.

Изменено в версии 3.3: Возвращает тип изменен с кортежа на кортежный объект с именем атрибуты.

os.wait()

Дождаться завершения дочернего процесса и возвращает кортеж, содержащий его индикацию pid и состояния выхода: 16-битное число, нижний байт которого является номером сигнала, который убил процесс, и высокий байт которого является состоянием выхода (если номер сигнала равен нулю); высокий бит нижнего байта устанавливается, если был создан основной файл.

Availability: Unix.

os.waitid(idtype, id, options)

Дождаться завершения одного или нескольких дочерних процессов. idtype может быть P_PID, P_PGID или P_ALL. id указывает pid для ожидания. options сконструирован из ORing одного или более из WEXITED, WSTOPPED или WCONTINUED и дополнительно может быть OReed с WNOHANG или WNOWAIT. возвращает значение - это объект, представляющий данные, содержащиеся в структуре the:c:type:siginfo_t, а именно: si_pid, si_uid, si_signo, si_status, si_code или None, если указан WNOHANG и нет потомков в ожидаемом состояние.

Availability: Unix.

Добавлено в версии 3.3.

os.P_PID
os.P_PGID
os.P_ALL

Это возможные значения для idtype в waitid(). Они влияют на то, как id интерпретируется.

Availability: Unix.

Добавлено в версии 3.3.

os.WEXITED
os.WSTOPPED
os.WNOWAIT

Флаги, которые могут быть используемый в options в waitid(), которые определяют что детский сигнал ждать.

Availability: Unix.

Добавлено в версии 3.3.

os.CLD_EXITED
os.CLD_DUMPED
os.CLD_TRAPPED
os.CLD_CONTINUED

Это возможные значения для si_code в результате возвращенный waitid().

Availability: Unix.

Добавлено в версии 3.3.

os.waitpid(pid, options)

Детали этой функции различаются в Unix и Windows.

В Unix дождитесь завершения дочернего процесса, заданного идентификатором процесса pid, и возвращает кортеж, содержащий его идентификатор процесса и индикацию состояния выхода (кодированный как для wait()). На семантику вызова влияет значение целого числа options, которое должно быть 0 для нормальной работы.

Если pid больше 0, waitpid() запрашивает информацию о состоянии для данного конкретного процесса. Если pid является 0, запрос имеет статус любого нижестоящего элемента в группе процессов текущего процесса. Если pid является -1, запрос относится к любому потомку текущего процесса. Если pid - меньше, чем -1, статус запрошенный для любого процесса в группе -pid процесса (абсолютный значение pid).

OSError поднят с значение errno когда syscall возвращает - 1.

В Windows: дождитесь завершения процесса, заданного дескриптором процесса pid, и возвращает кортеж, содержащий pid, и его состояние выхода сдвинуто влево на 8 бит (смещение облегчает кроссплатформенное использование функции). pid меньше или равно 0 не имеет особого значения в Windows и вызывает исключение. значение целочисленного options не имеет эффекта. pid может относиться к любому процессу, идентификатор которого известен, не обязательно дочернему процессу. Функции spawn* назвали с P_NOWAIT возвращает подходящие ручки процесса.

Изменено в версии 3.5: Если системный вызов прерван, и сигнал обработчик не поднимает исключение, функция теперь повторяет системный вызов вместо того, чтобы поднять исключение InterruptedError (см. PEP 475 для объяснения).

os.wait3(options)

Аналогично waitpid(), за исключением того, что не задан аргумент идентификатора процесса, и возвращенный 3-элементный кортеж, содержащий идентификатор дочернего процесса, индикацию состояния выхода и информацию об использовании ресурсов. Дополнительные сведения об использовании ресурсов см. в resource.getrusage() аргумент опции совпадает с аргументом, предоставленным waitpid() и wait4().

Availability: Unix.

os.wait4(pid, options)

Подобный waitpid(), кроме кортежа с 3 элементами, содержа id процесса ребенка, признак статуса выхода и информацию об использовании ресурса возвращенный. Дополнительные сведения об использовании ресурсов см. в resource.getrusage() аргументы для wait4() такие же, как аргументы, предоставленные для waitpid().

Availability: Unix.

os.WNOHANG

Возможность для waitpid() к возвращает немедленно, если никакой статус дочернего процесса немедленно не доступен. Функция возвращает (0, 0) в этом случае.

Availability: Unix.

os.WCONTINUED

Этот параметр приводит к тому, что дочерние процессы будут сообщаться, если они были продолжены после остановки управления заданиями с момента последнего сообщения об их состоянии.

Availability: some Unix systems.

os.WUNTRACED

Этот параметр приводит к тому, что дочерние процессы будут сообщаться, если они были остановлены, но их текущие состояние не были сообщены с момента их остановки.

Availability: Unix.

Следующие функции берут статус процесса код в качестве возвращенный system(), wait() или waitpid() в качестве параметра. Они могут быть используемый для определения расположения процесса.

os.WCOREDUMP(status)

Возвращает True если для процесса было создано ядро дамп, в противном случае возвращает False.

Эта функция должна использоваться только в том случае, если WIFSIGNALED() имеет значение true.

Availability: Unix.

os.WIFCONTINUED(status)

Возвращает True если остановленный потомок был возобновлен доставкой SIGCONT (если процесс был продолжен с остановки управления заданием), в противном случае возвращает False.

См. параметр WCONTINUED.

Availability: Unix.

os.WIFSTOPPED(status)

Возвращает True если процесс был остановлен подачей сигнала, иначе возвращает False.

WIFSTOPPED() только возвращает True, если требование waitpid() было сделано, используя выбор WUNTRACED или когда процесс прослеживается (см. ptrace(2)).

Availability: Unix.

os.WIFSIGNALED(status)

Возвращает True если процесс был завершен сигналом, в противном случае возвращает False.

Availability: Unix.

os.WIFEXITED(status)

Возвращает True если процесс завершен нормально, то есть путем вызова exit() или _exit(), или путем возврата из main(); в противном случае возвращает False.

Availability: Unix.

os.WEXITSTATUS(status)

Возвращает статус выхода из процесса.

Эта функция должна использоваться только в том случае, если WIFEXITED() имеет значение true.

Availability: Unix.

os.WSTOPSIG(status)

Возвращает сигнал, вызвавший остановку процесса.

Эта функция должна использоваться только в том случае, если WIFSTOPPED() имеет значение true.

Availability: Unix.

os.WTERMSIG(status)

Возвращает номер сигнала, вызвавшего завершение процесса.

Эта функция должна использоваться только в том случае, если WIFSIGNALED() имеет значение true.

Availability: Unix.

Интерфейс с планировщиком

Эти функции управляют тем, как операционная система выделяет процессорное время процессу. Они доступны только на некоторых платформах Unix. Для получения более подробной информации обратитесь к руководству Unix.

Добавлено в версии 3.3.

Следующие политики планирования доступны, если они поддерживаются операционной системой.

os.SCHED_OTHER

Политика планирования по умолчанию.

os.SCHED_BATCH

Планирование политики для процессов с интенсивным ЦПУ, которые пытаются сохранить интерактивность на остальной части компьютера.

os.SCHED_IDLE

Планирование политики для крайне низкоприоритетных фоновых задач.

os.SCHED_SPORADIC

Планирование политики для спорадических серверных программ.

os.SCHED_FIFO

Политика планирования «первым пришел, первым обслужен».

os.SCHED_RR

Циклическая политика планирования.

os.SCHED_RESET_ON_FORK

Этот флаг может быть установлен с помощью любой другой политики планирования. При форсировании процесса с этим флажком политика планирования и приоритет его потомка сбрасываются на значение по умолчанию.

class os.sched_param(sched_priority)

Этот класс представляет настраиваемые параметры планирования используемый в sched_setparam(), sched_setscheduler() и sched_getparam(). Она неизменна.

На данный момент существует только один возможный параметр:

sched_priority

Приоритет планирования для политики планирования.

os.sched_get_priority_min(policy)

Получите минимальный приоритет значение для policy. policy является одной из приведенных выше констант политики планирования.

os.sched_get_priority_max(policy)

Получите максимальный приоритет значение для policy. policy является одной из приведенных выше констант политики планирования.

os.sched_setscheduler(pid, policy, param)

Установить политику планирования для процесса с PID pid. pid 0 означает процесс запроса. policy является одной из приведенных выше констант политики планирования. param является sched_param сущность.

os.sched_getscheduler(pid)

Возвращает политика планирования для процесса с PID pid. pid 0 означает процесс запроса. Результатом является одна из приведенных выше констант политики планирования.

os.sched_setparam(pid, param)

Параметры планирования установить для процесса с PID pid. pid 0 означает процесс запроса. param является sched_param сущность.

os.sched_getparam(pid)

Возвращает параметры планирования как sched_param сущность для процесса с PID pid. pid 0 означает процесс запроса.

os.sched_rr_get_interval(pid)

Возвращает квант кругового обзора в секундах для процесса с PID pid. pid 0 означает процесс запроса.

os.sched_yield()

Добровольно отказаться от ЦПУ.

os.sched_setaffinity(pid, mask)

Ограничьте процесс с PID pid (или текущий процесс если ноль) к ряду центральных процессоров. mask - итабл целых чисел, представляющий набор CPU, которым процесс должен быть ограничен.

os.sched_getaffinity(pid)

Возвращает набор CPU процесса с PID pid (или текущий процесс, если ноль) ограничен.

Прочая информация о системе

os.confstr(name)

Возвращает строку-значение значений конфигурации системы. name определяет конфигурацию значение, чтобы восстановить; это может быть строка, которая является именем определенной системы значение; эти имена указаны в ряде стандартов (POSIX, Unix 95, Unix 98 и другие). Некоторые платформы также определяют дополнительные имена. Имена, известные операционной системе хоста, задаются как ключи словаря confstr_names. Для переменных конфигурации, не включенных в это сопоставление, также принимается передача целого числа для name.

Если конфигурация, значение, определенный name, не определен, None, является возвращенный.

Если name является строка и неизвестно, ValueError поднимается. Если определенный значение для name не поддержан хост-системой, даже если это включено в confstr_names, OSError поднят с errno.EINVAL для кода ошибки.

Availability: Unix.

os.confstr_names

Словарь, наносящий на карту имена, принятые confstr() к целочисленному значения, определен для тех имен операционной системой хозяина. Это может быть используемый, чтобы определить набор имен, известных системе.

Availability: Unix.

os.cpu_count()

Возвращает количество CPU в системе. Возвращает None, если не определено.

Это число не эквивалентно числу CPU, которые может использовать текущий процесс. Количество используемых CPU можно получить с помощью len(os.sched_getaffinity(0))

Добавлено в версии 3.4.

os.getloadavg()

Возвращает количество процессов в системе управляет очередью, усредненной по последнему 1, 5, и 15 минут, или поднимает OSError, если среднее число груза было недоступно.

Availability: Unix.

os.sysconf(name)

Возвращает целочисленная конфигурация системы значения. Если конфигурация, значение, определенный name, не определен, -1, является возвращенный. Комментарии относительно параметра name для confstr() также применяются здесь; словарь, в котором содержится информация об известных именах, приводится sysconf_names.

Availability: Unix.

os.sysconf_names

Словарь, наносящий на карту имена, принятые sysconf() к целочисленному значения, определен для тех имен операционной системой хозяина. Это может быть используемый, чтобы определить набор имен, известных системе.

Availability: Unix.

Следующие данные значения являются используемый, чтобы поддержать операции по манипуляции пути. Они определены для всех платформ.

Операции более высокого уровня над путями определяются в модуле os.path.

os.curdir

Постоянный строка используемый операционной системой, чтобы относиться к текущему каталогу. Это '.' для Windows и POSIX. Также доступна через os.path.

os.pardir

Постоянный строка используемый операционной системой, чтобы обратиться к родительскому каталогу. Это '..' для Windows и POSIX. Также доступна через os.path.

os.sep

Символ, используемый операционной системой для разделения компонентов имени пути. Это '/' для POSIX и '\\' для Windows. Обратите внимание, что знание этого недостаточно для того, чтобы иметь возможность анализировать или конкатенатировать имена путей — использовать os.path.split() и os.path.join() —, но иногда это полезно. Также доступна через os.path.

os.altsep

Альтернативный символ используемый операционной системой, чтобы отделить компоненты имени пути или None, если только один сепаратор символ существует. Установлено значение '/' в системах Windows, где sep является обратной косой чертой. Также доступна через os.path.

os.extsep

символ, отделяющий имя базового файла от расширения; например, '.' в os.py. Также доступна через os.path.

os.pathsep

Символ, традиционно используемый операционной системой, чтобы отделить компоненты пути поиска (как в PATH), такие как ':' для POSIX или ';' для Windows. Также доступна через os.path.

os.defpath

Используемый путь поиска по умолчанию exec*p* и spawn*p*, если у окружающей среды нет ключа 'PATH'. Также доступна через os.path.

os.linesep

Строка используемый, чтобы отделить (или, скорее конечный) линии на текущей платформе. Это может быть одна символ, например '\n' для POSIX, или несколько символов, например, '\r\n' для Windows. Не использовать os.linesep в качестве терминатора строки при записи файлов, открытых в текстовом режиме (по умолчанию); вместо этого используйте один '\n' на всех платформах.

os.devnull

Путь к файлу нулевого устройства. Например: '/dev/null' для POSIX, 'nul' для Windows. Также доступна через os.path.

os.RTLD_LAZY
os.RTLD_NOW
os.RTLD_GLOBAL
os.RTLD_LOCAL
os.RTLD_NODELETE
os.RTLD_NOLOAD
os.RTLD_DEEPBIND

Флаги для использования с функциями setdlopenflags() и getdlopenflags(). Сведения о различных флагах см. на странице руководства Unix dlopen(3).

Добавлено в версии 3.3.

Случайные числа

os.getrandom(size, flags=0)

Получите до size случайных байт. Функция может возвращает меньше байтов, чем запрошенный.

Эти байты могут быть используемый, чтобы отобрать генераторы случайных чисел пространства пользователя или в шифровальных целях.

getrandom() опирается на энтропию, собранную от драйверов устройств и других источников экологического шума. Ненужное считывание больших объемов данных негативно скажется на других пользователях устройств /dev/random и /dev/urandom.

Аргумент flags является битовой маской, которая может содержать ноль или более из следующих значения ORed вместе: os.GRND_RANDOM и GRND_NONBLOCK.

См. также раздел Linux getrandom() manual page.

Availability: Linux 3.17 и новее.

Добавлено в версии 3.6.

os.urandom(size)

Возвращает строка случайных байтов size, подходящих для шифровального использования.

Эта функция возвращает случайные байты из специфичного для оС источника случайности. Данные возвращенный должны быть достаточно непредсказуемыми для криптографических приложений, хотя их точное качество зависит от реализации оС.

На Linux, если getrandom() syscall доступен, это - используемый в блокировании режима: блок до системы urandom фонд энтропии инициализирован (128 битов энтропии собраны ядром). Обоснование см. в разделе PEP 524. На Linux функция getrandom() может быть используемый, чтобы получить случайные байты в неблокировании режима (использующий флаг GRND_NONBLOCK) или голосовать, пока система urandom фонд энтропии не инициализирована.

В Unix-подобной системе случайные байты считываются с устройства /dev/urandom. Если устройство /dev/urandom недоступно или недоступно для чтения, возникает исключение NotImplementedError.

В Windows он будет использовать CryptGenRandom().

См.также

Модуль secrets обеспечивает функции более высокого уровня. Для простого в использовании интерфейса к случайному числу генератор, обеспеченный вашей платформой, пожалуйста, см. random.SystemRandom.

Изменено в версии 3.6.0: На Linux getrandom() - теперь используемый в блокировании режима, чтобы увеличить безопасность.

Изменено в версии 3.5.2: На Linux, если getrandom() syscall блокирует (urandom фонд энтропии еще не инициализирован), возвратитесь к чтению /dev/urandom.

Изменено в версии 3.5: На Linux 3.17 и более новый, getrandom() syscall - теперь используемый, когда доступно. На OpenBSD 5.6 и более новый, функция C getentropy() - теперь используемый. Эти функции позволяют избежать использования внутренних файловых дескриптор.

os.GRND_NONBLOCK

По умолчанию при чтении из /dev/random, getrandom() блокирует, если случайные байты отсутствуют, а при чтении из /dev/urandom блокирует, если пул энтропии еще не инициализирован.

Если флаг GRND_NONBLOCK установлен, то getrandom() не блокирует в этих случаях, а вместо этого немедленно поднимает BlockingIOError.

Добавлено в версии 3.6.

os.GRND_RANDOM

Если этот бит установлен, то случайные байты извлекаются из пула /dev/random вместо пула /dev/urandom.

Добавлено в версии 3.6.