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
(или их подклассы) в случае
недопустимых или недоступных имен файлов и путей или других аргументов, имеющих
правильный тип, но не принятых операционной системой.
-
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
синхронизируются (modifyenvironb
updateenviron
и наоборот).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.
-
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 argumentskey
,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 argumentkey
.Availability: большинство разновидностей Unix.
Создать объекта файла¶
Эти функции создают новые файловые объекты. (См. также
open()
для открытия файловых дескрипторов.)
Файл дескриптор операции¶
Эти функции работают с I/O потоками, на которые ссылается файл дескрипторы.
Файл дескрипторы - это небольшие целые числа, соответствующие файлу, который был открыт текущим процессом. Например, стандартный ввод обычно является файлом дескриптор 0, стандартный вывод - 1, а стандартная ошибка - 2. Другие файлы, открытые процессом, будут присвоены 3, 4, 5 и т.д. Название «файл дескриптор» слегка обманчиво; на платформах Unix на сокеты и пайпы также ссылаются файловые дескрипторы.
Метод fileno()
может быть используемый, чтобы получить файл дескриптор,
связанный с файловым объектом при необходимости. Обратите внимание, что использование
файла дескриптор непосредственно обойдет методы объекта файла, игнорируя
аспекты, такие как внутреннее буферизование данных.
-
os.
close
(fd)¶ Закрыть файл дескриптор fd.
-
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 argumentspath
,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 argumentspath
,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 argumentsfd
,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 argumentsfd
,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 argumentspath
,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.
-
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.
Наследование файловых дескрипторов¶
Добавлено в версии 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
.
не следуя символическим ссылкам: If follow_symlinks является
False
, и последний элемент пути для работы является символической ссылкой, функция будет работать с самой символической ссылкой, а не с файлом, на который указывает ссылка. (Для систем POSIX Python назовет вариантl...
функции.)Вы можете проверить, поддерживается ли follow_symlinks для определенной функции на вашей платформе, используя
os.supports_follow_symlinks
. Если он недоступен, его использование приведет к появлению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 argumentpath
.Добавлено в версии 3.3: Добавлена поддержка указания path в качестве файла дескриптор на некоторых платформах.
Изменено в версии 3.6: Принимает путеподобный объект.
-
os.
chflags
(path, flags, *, follow_symlinks=True)¶ Установить для флагов path числовое значение flags. flags может принимать комбинацию (побитовое иЛИ) следующих значения (как определено в модуле
stat
):stat.UF_NODUMP
stat.UF_IMMUTABLE
stat.UF_APPEND
stat.UF_OPAQUE
stat.UF_NOUNLINK
stat.UF_COMPRESSED
stat.UF_HIDDEN
stat.SF_ARCHIVED
stat.SF_IMMUTABLE
stat.SF_APPEND
stat.SF_NOUNLINK
stat.SF_SNAPSHOT
Эта функция может поддерживать не следуя символическим ссылкам.
Raises an auditing event
os.chflags
with argumentspath
,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:stat.S_ISUID
stat.S_ISGID
stat.S_ENFMT
stat.S_ISVTX
stat.S_IREAD
stat.S_IWRITE
stat.S_IEXEC
stat.S_IRWXU
stat.S_IRUSR
stat.S_IWUSR
stat.S_IXUSR
stat.S_IRWXG
stat.S_IRGRP
stat.S_IWGRP
stat.S_IXGRP
stat.S_IRWXO
stat.S_IROTH
stat.S_IWOTH
stat.S_IXOTH
Эта функция может поддерживать указание файлового дескриптора, пути относительно дескрипторов каталогов и не следуя символическим ссылкам.
Примечание
Хотя Windows поддерживает
chmod()
, с ним можно установить только флаг только для чтения (через константыstat.S_IWRITE
иstat.S_IREAD
или соответствующее целое число значение). Все остальные биты игнорируются.Raises an auditing event
os.chmod
with argumentspath
,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 argumentspath
,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 argumentpath
.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 argumentspath
,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 argumentspath
,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 argumentspath
,uid
,gid
,dir_fd
.Availability: Unix.
Изменено в версии 3.6: Принимает путеподобный объект.
-
os.
link
(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)¶ Создать жесткую ссылку, указывающую на src с именем dst.
Эта функция может поддерживать определение src_dir_fd и/или dst_dir_fd для поставки пути относительно дескрипторов каталогов и не следуя символическим ссылкам.
Raises an auditing event
os.link
with argumentssrc
,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 argumentpath
.Примечание
Для кодирования имен файлов
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 argumentspath
,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 argumentspath
,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.
readlink
(path, *, dir_fd=None)¶ Возвращает строка, представляющий путь, на который указывает символическая ссылка. Результатом может быть абсолютное или относительное имя пути; если он является относительным, он может быть преобразован в абсолютное имя пути с помощью
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 argumentspath
,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 argumentspath
,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 argumentssrc
,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 argumentssrc
,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 argumentssrc
,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 argumentspath
,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 argumentpath
.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_symlinksTrue
и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()
.
-
is_symlink
()¶ Возвращает
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_symlinksTrue
иFalse
. Позвонитеos.stat()
, чтобы получить актуальную информацию.
Обратите внимание, что существует хорошее соответствие между несколькими атрибуты и методами
os.DirEntry
иpathlib.Path
. В частности,name
атрибут имеет то же значение, что и методыis_dir()
,is_file()
,is_symlink()
иstat()
.Добавлено в версии 3.5.
-
-
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
Добавлено в версии 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_nlink
¶ Количество жестких связей.
-
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.
-
os.
supports_follow_symlinks
¶ Объект
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.
-
os.
symlink
(src, dst, target_is_directory=False, *, dir_fd=None)¶ Создать символическую ссылку, указывающую на 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 argumentssrc
,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 argumentspath
,length
.Availability: Unix, Windows.
Добавлено в версии 3.3.
Изменено в версии 3.5: Добавлена поддержка Windows
Изменено в версии 3.6: Принимает путеподобный объект.
-
os.
unlink
(path, *, dir_fd=None)¶ Удалите (удалите) файл path. Эта функция семантически идентична
remove()
; названиеunlink
является его традиционным именем Unix. Пожалуйста, см. документацию дляremove()
для получения дополнительной информации.Raises an auditing event
os.remove
with argumentspath
,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 argumentspath
,times
,ns
,dir_fd
.Добавлено в версии 3.3: Добавлена поддержка задания path в качестве открытого файла дескриптор, а также параметров dir_fd, follow_symlinks и ns.
Изменено в версии 3.6: Принимает путеподобный объект.
- Если задано значение ns, он должен быть 2-кортежем формы
-
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 argumentspath
,attribute
.Изменено в версии 3.6: Принимает путеподобный объект для path и attribute.
-
os.
listxattr
(path=None, *, follow_symlinks=True)¶ Возвращает список расширенной файловой системы атрибуты на path. атрибуты в списке представлены как строки декодированные с помощью файловой системы кодировка. Если path является
None
,listxattr()
проверит текущий каталог.Эта функция может поддерживать указание файлового дескриптора и не следуя символическим ссылкам.
Raises an auditing event
os.listxattr
with argumentpath
.Изменено в версии 3.6: Принимает путеподобный объект.
-
os.
removexattr
(path, attribute, *, follow_symlinks=True)¶ Удаляет расширенную файловую систему атрибут attribute из path. attribute должны быть байтами или str (прямо или косвенно через интерфейс
PathLike
). Если это строка, он кодированный с файловой системой кодировка.Эта функция может поддерживать указание дескриптора файла и не следуя символическим ссылкам.
Raises an auditing event
os.removexattr
with argumentspath
,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 argumentspath
,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 argumentpath
.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 argumentspath
,args
,env
.Availability: Unix, Windows.
Добавлено в версии 3.3: Добавлена поддержка указания path в качестве открытого файла дескриптор для
execve()
.Изменено в версии 3.6: Принимает путеподобный объект.
-
os.
_exit
(n)¶ Выйти из процесса со статусом n, не называя очистку обработчики, смыв stdio буфера, и т.д.
Следующие коды выхода определены и могут быть используемый с _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 argumentspid
,sig
.Добавлено в версии 3.2: Поддержка Windows.
-
os.
killpg
(pgid, sig)¶ Отправьте сигнал sig в группу процессов pgid.
Raises an auditing event
os.killpg
with argumentspgid
,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
вместо политики планировщика указывает, что это не обеспечивается. Этот аргумент представляет собой комбинацию флагов библиотеки CPOSIX_SPAWN_SETSCHEDPARAM
иPOSIX_SPAWN_SETSCHEDULER
.Raises an auditing event
os.posix_spawn
with argumentspath
,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 argumentspath
,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 argumentsmode
,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 относится к текущему каталогу. Если вы хотите использовать абсолютный путь, удостоверьтесь, что первый символ не разрез ('/'
); базовая функция Win32ShellExecute()
не работает, если это так. Используйте функциюos.path.normpath()
, чтобы гарантировать, что путь - должным образом кодированный для Win32.Чтобы уменьшить запуск интерпретатор наверху, функция Win32
ShellExecute()
не решена, пока эта функция сначала не вызвана. Если функция не может быть разрешена,NotImplementedError
будет вызван.Raises an auditing event
os.startfile
with argumentspath
,operation
.Availability: Windows.
-
os.
system
(command)¶ Выполнить команду (a строка) в вложенной оболочке. Это осуществлено, назвав стандарт C функцией
system()
и имеет те же ограничения. Изменения вsys.stdin
и т.д. не отражаются в среде выполняемой команды. Если command генерирует какой-либо выходной сигнал, он будет отправлен в стандартный выходной поток интерпретатор.В Unix возвращает значение - это состояние выхода процесса кодированный в формате, указанном для
wait()
. Обратите внимание, что POSIX не определяет значение возвращает значение функции Csystem()
, таким образом, возвращает значение функции Python зависим от системы.В Windows возвращает значение - это возвращенный системной оболочкой после запуска command. Оболочка задаётся переменной среды Windows
COMSPEC
: она, как правило, является cmd.exe, что возвращает состояние выхода командного запуска; о системах, использующих неродную оболочку, см. документацию по оболочке.Модуль
subprocess
обеспечивает более мощные средства для создания новых процессов и получения их результатов; использование этого модуля является предпочтительным для использования этой функции. Посмотрите раздел Замена старых функций модуля subprocess в документацииsubprocess
для некоторых полезных рецептов.Raises an auditing event
os.system
with argumentcommand
.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 и более новый, функция Cgetentropy()
- теперь используемый. Эти функции позволяют избежать использования внутренних файловых дескриптор.
-
os.
GRND_NONBLOCK
¶ По умолчанию при чтении из
/dev/random
,getrandom()
блокирует, если случайные байты отсутствуют, а при чтении из/dev/urandom
блокирует, если пул энтропии еще не инициализирован.Если флаг
GRND_NONBLOCK
установлен, тоgetrandom()
не блокирует в этих случаях, а вместо этого немедленно поднимаетBlockingIOError
.Добавлено в версии 3.6.
-
os.
GRND_RANDOM
¶ Если этот бит установлен, то случайные байты извлекаются из пула
/dev/random
вместо пула/dev/urandom
.Добавлено в версии 3.6.