os
— Miscellaneous operating system interfaces¶
Kod źródłowy: Lib/os.py
Modul ini menyediakan cara portabel menggunakan fungsionalitas yang bergantung pada sistem operasi. Jika Anda hanya ingin membaca atau menulis file, lihat open()
, jika Anda ingin memanipulasi path, lihat modul os.path
, dan jika Anda ingin membaca semua baris di semua file pada baris perintah lihat modul fileinput
. Untuk membuat file dan direktori sementara lihat modul tempfile
, dan untuk penanganan file dan direktori tingkat tinggi lihat modul shutil
.
Catatan tentang ketersediaan fungsi-fungsi tersebut:
Конструкція всіх вбудованих залежних від операційної системи модулів Python така, що, поки доступна та сама функціональність, він використовує той самий інтерфейс; наприклад, функція
os.stat(path)
повертає статистичну інформацію про path у тому самому форматі (який, як виявилося, походить з інтерфейсу POSIX).Розширення, властиві певній операційній системі, також доступні через модуль
os
, але їх використання, звичайно, є загрозою для переносимості.Усі функції, які приймають імена шляхів або файлів, приймають як байти, так і рядкові об’єкти, і в результаті повертають об’єкт того самого типу, якщо повертається шлях або ім’я файлу.
У VxWorks os.popen, os.fork, os.execv і os.spawn*p* не підтримуються.
На платформах WebAssembly, Android и iOS, большие части модуля
os
недоступны или ведут себя по-другому. API, связанные с процессами (например,fork()
,execve()
) и ресурсами (например,nice()
), недоступны. Другие, такие какgetuid()
иgetpid()
, эмулируются или являются заглушками. Платформы WebAssembly также не поддерживают сигналы (например,kill()
,wait()
).
Informacja
Усі функції в цьому модулі викликають OSError
(або його підкласи) у разі недійсних або недоступних імен файлів і шляхів або інших аргументів, які мають правильний тип, але не приймаються операційною системою.
- os.name¶
Назва імпортованого модуля, залежного від операційної системи. Наразі зареєстровано такі назви:
'posix'
,'nt'
,'java'
.Zobacz także
sys.platform
имеет более мелкую зернистость.os.uname()
предоставляет информацию о версии, зависящую от системы.Модуль
platform
забезпечує детальну перевірку ідентичності системи.
Nama Berkas, Argumen Command Line, dan Variabel Lingkungan¶
У Python імена файлів, аргументи командного рядка та змінні середовища представлені за допомогою рядкового типу. У деяких системах декодування цих рядків у та з байтів є необхідним перед передачею їх в операційну систему. Python використовує filesystem encoding and error handler для виконання цього перетворення (див. sys.getfilesystemencoding()
).
The filesystem encoding and error handler are configured at Python
startup by the PyConfig_Read()
function: see
filesystem_encoding
and
filesystem_errors
members of PyConfig
.
Zmienione w wersji 3.1: В некоторых системах преобразование с использованием кодировки файловой системы может завершиться неудачно. В этом случае Python использует обработчик ошибок кодирования surrogateescape. `, что означает, что недекодируемые байты заменяются символом Юникода U+DCxx при декодировании, и они снова преобразуются в исходный байт при кодировании.
кодування файлової системи має гарантувати успішне декодування всіх байтів нижче 128. Якщо кодування файлової системи не забезпечує цю гарантію, функції API можуть викликати UnicodeError
.
See also the locale encoding.
Python UTF-8 Modu¶
Dodane w wersji 3.7: Lihat PEP 540 untuk lebih detail.
Режим Python UTF-8 ігнорує кодування locale encoding і змушує використовувати кодування UTF-8:
Використовуйте UTF-8 як кодування файлової системи.
sys.getfilesystemencoding()
возвращает'utf-8'
.locale.getpreferredencoding()
возвращает'utf-8'
(аргумент do_setlocale не имеет никакого эффекта).sys.stdin
,sys.stdout
іsys.stderr
використовують UTF-8 як кодування тексту зsurrogateescape
обробником помилок увімкнено дляsys.stdin
іsys.stdout
(sys.stderr
продовжує використовуватиbackslashreplace
, як це робиться в режимі з урахуванням локалі за замовчуванням)В Unix,
os.device_encoding()
возвращает'utf-8'
а не кодировка устройства.
Зауважте, що стандартні параметри потоку в режимі UTF-8 можна замінити PYTHONIOENCODING
(так само, як вони можуть бути в режимі з урахуванням локалі за замовчуванням).
Як наслідок змін у цих API нижчого рівня, інші API вищого рівня також демонструють іншу поведінку за замовчуванням:
Аргументи командного рядка, змінні середовища та імена файлів декодуються в текст за допомогою кодування UTF-8.
os.fsdecode()
иos.fsencode()
используйте кодировку UTF-8.открыть()
,io.open()
, иcodecs.open()
по умолчанию используйте кодировку UTF-8. Однако по умолчанию они по-прежнему используют строгий обработчик ошибок, поэтому попытка открыть двоичный файл в текстовом режиме скорее всего приведет к возникновению исключения, а не к созданию бессмысленных данных.
Режим Python UTF-8 увімкнено, якщо під час запуску Python локаль LC_CTYPE є C
або POSIX
(див. функцію PyConfig_Read()
).
Його можна ввімкнути або вимкнути за допомогою параметра командного рядка -X utf8
і змінної середовища PYTHONUTF8
.
Якщо змінна середовища PYTHONUTF8
не встановлена взагалі, інтерпретатор за замовчуванням використовує поточні параметри локалі, якщо поточна локаль не визначена як застаріла локаль на основі ASCII (як описано для PYTHONCOERCECLOCALE
), а примусове налаштування локалі вимкнено або не працює. У таких застарілих локалях інтерпретатор за замовчуванням увімкне режим UTF-8, якщо немає явних вказівок не робити цього.
Режим Python UTF-8 можна ввімкнути лише під час запуску Python. Його значення можна прочитати з sys.flags.utf8_mode
.
Дивіться також режим UTF-8 у Windows і filesystem encoding and error handler.
Zobacz także
- PEP 686
Python 3.15 сделает utf8-режим по умолчанию.
İşleme Parametreleri¶
Ці функції та елементи даних надають інформацію та діють щодо поточного процесу та користувача.
- os.ctermid()¶
Повертає ім’я файлу, що відповідає керуючому терміналу процесу.
Dostępność: Unix, not WASI.
- os.environ¶
Об’єкт mapping, де ключі та значення є рядками, які представляють середовище процесу. Наприклад,
environ['HOME']
є шляхом до вашого домашнього каталогу (на деяких платформах) і еквівалентнийgetenv("HOME")
в C.Це зіставлення фіксується під час першого імпорту модуля
os
, зазвичай під час запуску Python як частина обробкиsite.py
. Зміни в середовищі, внесені після цього часу, не відображаються вos.environ
, за винятком змін, внесених безпосередньо шляхом модифікаціїos.environ
.Це відображення можна використовувати для зміни середовища, а також запиту середовища.
putenv()
буде викликано автоматично, коли відображення буде змінено.В Unix ключі та значення використовують
sys.getfilesystemencoding()
і'surrogateescape'
обробник помилок. Використовуйтеenvironb
, якщо ви хочете використати інше кодування.В Windows клавиши преобразуются в верхний регистр. Это также применимо при получении, настройке или удалении элемента. Например,
environ['monty'] = 'python'
отображает ключ'МОНТИ'
к значению'питон'
.Informacja
Безпосередній виклик
putenv()
не змінюєos.environ
, тому краще змінитиos.environ
.Informacja
На некоторых платформах, включая FreeBSD и macOS, настройка
о
может вызвать утечку памяти. Обратитесь к документации системы дляputenv()
.Ви можете видалити елементи в цьому відображенні, щоб скасувати налаштування змінних середовища.
unsetenv()
буде викликано автоматично, коли елемент буде видалено зos.environ
, а також під час виклику одного з методівpop()
абоclear()
.Zmienione w wersji 3.9: Оновлено для підтримки операторів злиття (
|
) і оновлення (|=
) PEP 584.
- os.environb¶
Байтова версія
environ
: об’єкт mapping, де і ключі, і значення є об’єктамиbytes
, що представляють середовище процесу.environ
іenvironb
синхронізуються (модифікаціяenvironb
оновлюєenviron
, і навпаки).окружающая среда
доступен только в том случае, еслиsupports_bytes_environ
являетсяПравда
.Dodane w wersji 3.2.
Zmienione w wersji 3.9: Оновлено для підтримки операторів злиття (
|
) і оновлення (|=
) PEP 584.
- os.chdir(path)
- os.fchdir(fd)
- os.getcwd()
Fungsi ini dideskripsikan di Dosyalar ve Dizinler.
- os.fsencode(filename)¶
Закодуйте path-like ім’я файлу до filesystem encoding and error handler; повертає
bytes
без змін.fsdecode()
є зворотною функцією.Dodane w wersji 3.2.
Zmienione w wersji 3.6: Додано підтримку прийому об’єктів, що реалізують інтерфейс
os.PathLike
.
- os.fsdecode(filename)¶
Декодуйте path-like filename з filesystem encoding and error handler; повертає
str
без змін.fsencode()
є зворотною функцією.Dodane w wersji 3.2.
Zmienione w wersji 3.6: Додано підтримку прийому об’єктів, що реалізують інтерфейс
os.PathLike
.
- os.fspath(path)¶
Повертає представлення файлової системи шляху.
Якщо передано
str
абоbytes
, воно повертається без змін. В іншому випадку викликається__fspath__()
і повертається його значення, якщо це об’єктstr
абоbytes
. У всіх інших випадках виникаєTypeError
.Dodane w wersji 3.6.
- class os.PathLike¶
abstract base class для об’єктів, що представляють шлях файлової системи, напр.
pathlib.PurePath
.Dodane w wersji 3.6.
- os.getenv(key, default=None)¶
Верните значение переменной среды key в виде строки, если она существует, или default, если ее нет. ключ — это строка. Обратите внимание, что поскольку
getenv()
используетos.environ
, отображениеgetenv()
аналогичным образом также фиксируется при импорте, и функция может не отражать будущие изменения среды.В Unix ключі та значення декодуються за допомогою
sys.getfilesystemencoding()
і'surrogateescape'
обробника помилок. Використовуйтеos.getenvb()
, якщо ви хочете використати інше кодування.Dostępność: Unix, Windows.
- os.getenvb(key, default=None)¶
Верните значение переменной среды key в виде байтов, если она существует, или default, если ее нет. ключ должен быть байтовым. Обратите внимание, что поскольку
getenvb()
используетos.environb
, отображениеgetenvb()
аналогичным образом также фиксируется при импорте, и функция может не отражать будущие изменения среды.getenvb()
доступен только в том случае, еслиsupports_bytes_environ
являетсяПравда
.Dostępność: Unix.
Dodane w wersji 3.2.
- os.get_exec_path(env=None)¶
Повертає список каталогів, у яких здійснюватиметься пошук іменованого виконуваного файлу, схожого на оболонку, під час запуску процесу. env, якщо вказано, має бути словником змінної середовища для пошуку ШЛЯХУ. За умовчанням, коли env має значення
None
, використовуєтьсяenviron
.Dodane w wersji 3.2.
- os.getegid()¶
Повертає ефективний ідентифікатор групи поточного процесу. Це відповідає біту „set id” у файлі, який виконується в поточному процесі.
Dostępność: Unix, not WASI.
- os.geteuid()¶
Повернути ефективний ідентифікатор користувача поточного процесу.
Dostępność: Unix, not WASI.
- os.getgid()¶
Повертає справжній ідентифікатор групи поточного процесу.
Dostępność: Unix.
Функция является заглушкой WASI, см. Платформы веб-сборки для получения дополнительной информации.
- os.getgrouplist(user, group, /)¶
Возвращает список идентификаторов групп, к которым принадлежит user. Если group нет в списке, она включается; обычно group указывается в качестве поля идентификатора группы из записи пароля для user, поскольку в противном случае этот идентификатор группы может быть опущен.
Dostępność: Unix, not WASI.
Dodane w wersji 3.3.
- os.getgroups()¶
Повернути список ідентифікаторів додаткових груп, пов’язаних із поточним процесом.
Dostępność: Unix, not WASI.
Informacja
Где macOS,
getgroups()
поведение несколько отличается от других платформ Unix. Если интерпретатор Python был создан с целью развертывания10.5
или раньше,getgroups()
возвращает список эффективных идентификаторов групп, связанных с текущим пользовательским процессом; этот список ограничен определенным системой количеством записей, обычно 16, и может быть изменен вызовамиsetgroups()
если у него есть соответствующие привилегии. Если построено с целью развертывания, превышающей10.5
,getgroups()
возвращает текущий список группового доступа для пользователя, связанного с эффективным идентификатором пользователя процесса; список доступа группы может меняться в течение жизни процесса, на него не влияют вызовыsetgroups()
, а его длина не ограничена 16. Целевое значение развертыванияMACOSX_DEPLOYMENT_TARGET
, can be obtained withsysconfig.get_config_var()
.
- os.getlogin()¶
Повертає ім’я користувача, який увійшов у систему на керуючому терміналі процесу. Для більшості цілей корисніше використовувати
getpass.getuser()
, оскільки останній перевіряє змінні середовищаLOGNAME
абоUSERNAME
, щоб дізнатися, хто є користувачем, і повертається доpwd.getpwuid(os.getuid())[0]
, щоб отримати ім’я для входу поточного реального ідентифікатора користувача.Dostępność: Unix, Windows, not WASI.
- os.getpgid(pid)¶
Повертає ідентифікатор групи процесу з ідентифікатором процесу pid. Якщо pid дорівнює 0, повертається ідентифікатор групи поточного процесу.
Dostępność: Unix, not WASI.
- os.getpgrp()¶
Повертає ідентифікатор поточної групи процесів.
Dostępność: Unix, not WASI.
- os.getpid()¶
Zwróci ID aktualnego procesu.
Функция является заглушкой WASI, см. Платформы веб-сборки для получения дополнительной информации.
- os.getppid()¶
Повертає ідентифікатор батьківського процесу. Коли батьківський процес завершив роботу, в Unix повертається ідентифікатор процесу ініціалізації (1), у Windows це все ще той самий ідентифікатор, який може вже повторно використовуватися іншим процесом.
Dostępność: Unix, Windows, not WASI.
Zmienione w wersji 3.2: Dodane wsparcie dla Windowsa.
- os.getpriority(which, who)¶
Отримати пріоритет планування програми. Значення which є одним із
PRIO_PROCESS
,PRIO_PGRP
абоPRIO_USER
, і who інтерпретується відносно which (ідентифікатор процесу дляPRIO_PROCESS
, ідентифікатор групи процесів дляPRIO_PGRP
та ідентифікатор користувача дляPRIO_USER
). Нульове значення для who позначає (відповідно) викликаючий процес, групу процесів викликаючого процесу або справжній ідентифікатор користувача викликаючого процесу.Dostępność: Unix, not WASI.
Dodane w wersji 3.3.
- os.PRIO_PROCESS¶
- os.PRIO_PGRP¶
- os.PRIO_USER¶
Parameter untuk fungsi
getpriority()
dansetpriority()
.Dostępność: Unix, not WASI.
Dodane w wersji 3.3.
- os.PRIO_DARWIN_THREAD¶
- os.PRIO_DARWIN_PROCESS¶
- os.PRIO_DARWIN_BG¶
- os.PRIO_DARWIN_NONUI¶
Parameter untuk fungsi
getpriority()
dansetpriority()
.Dostępność: macOS
Dodane w wersji 3.12.
- os.getresuid()¶
Повертає кортеж (ruid, euid, suid), що позначає справжні, ефективні та збережені ідентифікатори користувачів поточного процесу.
Dostępność: Unix, not WASI.
Dodane w wersji 3.2.
- os.getresgid()¶
Повертає кортеж (rgid, egid, sgid), що позначає справжні, ефективні та збережені ідентифікатори груп поточного процесу.
Dostępność: Unix, not WASI.
Dodane w wersji 3.2.
- os.getuid()¶
Повертає справжній ідентифікатор користувача поточного процесу.
Dostępność: Unix.
Функция является заглушкой WASI, см. Платформы веб-сборки для получения дополнительной информации.
- os.initgroups(username, gid, /)¶
Викличте системний initgroups(), щоб ініціалізувати список доступу групи з усіма групами, членом яких є вказане ім’я користувача, а також ідентифікатор зазначеної групи.
Dostępność: Unix, not WASI, not Android.
Dodane w wersji 3.2.
- os.putenv(key, value, /)¶
Встановіть змінну середовища з назвою key на рядкове значення. Такі зміни в середовищі впливають на підпроцеси, запущені з
os.system()
,popen()
абоfork()
іexecv()
.Призначення елементів у
os.environ
автоматично перетворюються на відповідні викликиputenv()
; однак викликиputenv()
не оновлюютьos.environ
, тому насправді краще призначати елементамos.environ
. Це також стосуєтьсяgetenv()
іgetenvb()
, які відповідно використовуютьos.environ
іos.environb
у своїх реалізаціях.Informacja
На некоторых платформах, включая FreeBSD и macOS, настройка
о
может вызвать утечку памяти. Обратитесь к документации системы дляputenv()
.Викликає подію аудиту
os.putenv
з аргументамиkey
,value
.Zmienione w wersji 3.9: Fonksiyon artık her zaman mevcut.
- os.setegid(egid, /)¶
Tetapkan id grup proses efektif saat ini.
Dostępność: Unix, not WASI, not Android.
- os.seteuid(euid, /)¶
Tetapkan id pengguna efektif proses saat ini.
Dostępność: Unix, not WASI, not Android.
- os.setgid(gid, /)¶
Tetapkan id grup proses saat ini.
Dostępność: Unix, not WASI, not Android.
- os.setgroups(groups, /)¶
Установіть для списку ідентифікаторів додаткових груп, пов’язаних із поточним процесом, значення groups. групи мають бути послідовністю, а кожен елемент має бути цілим числом, що ідентифікує групу. Зазвичай ця операція доступна лише суперкористувачу.
Dostępność: Unix, not WASI.
Informacja
У macOS довжина groups не може перевищувати визначену системою максимальну кількість ефективних ідентифікаторів груп, як правило, 16. Перегляньте документацію для
getgroups()
, щоб дізнатися про випадки, коли він може не повернути той самий список груп, встановлений за допомогою виклику setgroups().
- os.setns(fd, nstype=0)¶
Повторно свяжите текущий поток с пространством имен Linux. См. setns(2) и пространства имен(7) man-страницы для получения более подробной информации.
Если fd относится к
/proc/pid/ns/
связь,setns()
повторно связывает вызывающий поток с пространством имен, связанным с этой ссылкой, а nstype может быть установлен в одну из констант CLONE_NEW* ` чтобы наложить ограничения на операцию ( ``0` означает отсутствие ограничений).Начиная с Linux 5.8, fd может относиться к дескриптору файла PID, полученному из
pidfd_open()
. В этом случае,setns()
повторно связывает вызывающий поток с одним или несколькими теми же пространствами имен, что и поток, на который ссылается fd. На это распространяются любые ограничения, налагаемые nstype, который представляет собой битовую маску, объединяющую одну или несколько констант CLONE_NEW*. `, например ``setns(fd, os.CLONE_NEWUTS | os.CLONE_NEWPID)` . Членство вызывающего абонента в неуказанных пространствах имен остается неизменным.fd может быть любым объектом с
fileno()
метод или необработанный дескриптор файла.В этом примере поток повторно связывается с ``жара»» сетевое пространство имен процесса:
fd = os.open("/proc/1/ns/net", os.O_RDONLY) os.setns(fd, os.CLONE_NEWNET) os.close(fd)
Dostępność: Linux >= 3.0 with glibc >= 2.14.
Dodane w wersji 3.12.
Zobacz także
The
unshare()
функция.
- os.setpgrp()¶
Вызов системного вызова
setpgrp()
илиsetpgrp(0, 0)
в зависимости от того, какая версия реализована (если есть). Семантику смотрите в руководстве Unix.Dostępność: Unix, not WASI.
- os.setpgid(pid, pgrp, /)¶
Вызов системного вызова
setpgid()
чтобы установить идентификатор группы процессов процесса с идентификатором pid в группу процессов с идентификатором pgrp. Семантику смотрите в руководстве Unix.Dostępność: Unix, not WASI.
- os.setpriority(which, who, priority)¶
Встановити пріоритет планування програми. Значення which є одним із
PRIO_PROCESS
,PRIO_PGRP
абоPRIO_USER
і who інтерпретується відносно which (ідентифікатор процесу дляPRIO_PROCESS
, ідентифікатор групи процесів дляPRIO_PGRP
та ідентифікатор користувача дляPRIO_USER
). Нульове значення для who позначає (відповідно) викликаючий процес, групу процесів викликаючого процесу або справжній ідентифікатор користувача викликаючого процесу. пріоритет — це значення в діапазоні від -20 до 19. Пріоритет за замовчуванням — 0; нижчі пріоритети викликають більш сприятливе планування.Dostępność: Unix, not WASI.
Dodane w wersji 3.3.
- os.setregid(rgid, egid, /)¶
Встановіть справжні та ефективні ідентифікатори груп поточного процесу.
Dostępność: Unix, not WASI, not Android.
- os.setresgid(rgid, egid, sgid, /)¶
Встановіть реальні, ефективні та збережені ідентифікатори груп поточного процесу.
Dostępność: Unix, not WASI, not Android.
Dodane w wersji 3.2.
- os.setresuid(ruid, euid, suid, /)¶
Встановіть справжні, ефективні та збережені ідентифікатори користувачів поточного процесу.
Dostępność: Unix, not WASI, not Android.
Dodane w wersji 3.2.
- os.setreuid(ruid, euid, /)¶
Встановіть справжні та ефективні ідентифікатори користувачів поточного процесу.
Dostępność: Unix, not WASI, not Android.
- os.getsid(pid, /)¶
Вызов системного вызова
getsid()
. Семантику смотрите в руководстве Unix.Dostępność: Unix, not WASI.
- os.setsid()¶
Вызов системного вызова
setsid()
. Семантику смотрите в руководстве Unix.Dostępność: Unix, not WASI.
- os.setuid(uid, /)¶
Tetapkan id pengguna proses saat ini.
Dostępność: Unix, not WASI, not Android.
- os.strerror(code, /)¶
Возвращает сообщение об ошибке, соответствующее коду ошибки в code. На платформах, где
strerror()
возвращаетНУЛЬ
при получении неизвестного номера ошибки,ValueError
поднят.
- os.supports_bytes_environ¶
True
, якщо рідний тип ОС середовища - байти (наприклад,False
у Windows).Dodane w wersji 3.2.
- os.umask(mask, /)¶
Установіть поточну цифрову umask і поверніть попередню umask.
Функция является заглушкой WASI, см. Платформы веб-сборки для получения дополнительной информации.
- os.uname()¶
Повертає інформацію про поточну операційну систему. Значення, що повертається, є об’єктом із п’ятьма атрибутами:
sysname
- nama sistem operasinodename
- ім’я машини в мережі (визначено реалізацією)release
- rilis sistem operasiversion
- versi sistem operasimachine
- pengidentifikasi perangkat keras
Для зворотної сумісності цей об’єкт також можна ітерувати, ведучи себе як п’ять кортежів, що містять
sysname
,nodename
,release
,version
іmachine
в такому порядку.Деякі системи скорочують
nodename
до 8 символів або до початкового компонента; кращий спосіб отримати ім’я хоста –socket.gethostname()
або навітьsocket.gethostbyaddr(socket.gethostname())
.В macOS, iOS и Android возвращается имя и версия ядра (т. е.
'Дарвин'
на macOS и iOS;'Линукс'
на Андроиде).platform.uname()
может использоваться для получения имени и версии операционной системы, ориентированной на пользователя, на iOS и Android.Dostępność: Unix.
Zmienione w wersji 3.3: Тип повернення змінено з кортежу на кортежний об’єкт з іменованими атрибутами.
- os.unsetenv(key, /)¶
Скасувати (видалити) змінну середовища з назвою key. Такі зміни в середовищі впливають на підпроцеси, запущені з
os.system()
,popen()
абоfork()
іexecv()
.Видалення елементів у
os.environ
автоматично перетворюється на відповідний викликunsetenv()
; однак викликиunsetenv()
не оновлюютьos.environ
, тому насправді краще видалити елементиos.environ
.Викликає подію аудиту
os.unsetenv
з аргументомkey
.Zmienione w wersji 3.9: Fonksiyon artık daima mevcut ve Windows’ta da mevcuttur.
Отсоедините части контекста выполнения процесса и переместите их во вновь созданное пространство имен. См. unshare(2) справочную страницу для более подробной информации. Аргумент flags представляет собой битовую маску, объединяющую ноль или более констант CLONE_*. `, который указывает, какие части контекста выполнения должны быть удалены из существующих ассоциаций и перемещены в новое пространство имен. Если аргумент *flags* ``0` , никакие изменения в контекст выполнения вызывающего процесса не вносятся.
Dostępność: Linux >= 2.6.16.
Dodane w wersji 3.12.
Zobacz także
The
setns()
функция.
Pembuatan Objek Berkas¶
Ці функції створюють нові файлові об’єкти. (Див. також open()
для відкриття дескрипторів файлів.)
Операції файлового дескриптора¶
Ці функції працюють із потоками введення/виведення, на які посилаються за допомогою файлових дескрипторів.
Дескриптори файлів — це малі цілі числа, що відповідають файлу, відкритому поточним процесом. Наприклад, стандартним введенням зазвичай є дескриптор файлу 0, стандартним виводом є 1, а стандартною помилкою є 2. Іншим файлам, відкритим процесом, буде присвоєно 3, 4, 5 і так далі. Назва „файловий дескриптор” трохи оманлива; на платформах Unix на сокети та канали також посилаються дескриптори файлів.
Метод fileno()
можна використовувати для отримання дескриптора файлу, пов’язаного з file object, коли це необхідно. Зауважте, що використання безпосередньо файлового дескриптора обійде методи файлового об’єкта, ігноруючи такі аспекти, як внутрішня буферизація даних.
- 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
Нет
, затем src считывается с текущей позиции; соответственно для offset_dst.В ядре Linux старше 5.3 файлы, на которые указывают src и dst, должны находиться в одной файловой системе, в противном случае
OSError
воспитывается сerrno
установлен наerrno.EXDEV
.Это копирование выполняется без дополнительных затрат на передачу данных из ядра в пространство пользователя и затем обратно в ядро. Кроме того, в некоторых файловых системах могут быть реализованы дополнительные оптимизации, такие как использование реферальных ссылок (т. е. двух или более индексных дескрипторов, которые совместно используют указатели на одни и те же дисковые блоки с возможностью копирования при записи; поддерживаемые файловые системы включают btrfs и XFS) и копирование на стороне сервера ( в случае NFS).
Функция копирует байты между двумя файловыми дескрипторами. Параметры текста, такие как кодировка и окончание строки, игнорируются.
Поверненим значенням є кількість скопійованих байтів. Це може бути менше запитаної суми.
Informacja
В Linux,
os.copy_file_range()
не следует использовать для копирования диапазона псевдофайла из специальной файловой системы, такой как procfs и sysfs. Он всегда не копирует байты и возвращает 0, как если бы файл был пустым из-за известной проблемы с ядром Linux.Dostępność: Linux >= 4.5 with glibc >= 2.27.
Dodane w wersji 3.8.
- os.device_encoding(fd)¶
Повертає рядок, що описує кодування пристрою, пов’язаного з fd, якщо він підключений до терміналу; інакше повертає
None
.В Unix, якщо ввімкнено Python UTF-8 Mode, поверніть
'UTF-8''
замість кодування пристрою.Zmienione w wersji 3.10: В Unix функція тепер реалізує режим Python UTF-8.
- os.dup(fd, /)¶
Повертає дублікат файлового дескриптора fd. Новий файловий дескриптор не успадковується.
У Windows під час дублювання стандартного потоку (0: stdin, 1: stdout, 2: stderr) новий дескриптор файлу є inheritable.
Dostępność: not WASI.
Zmienione w wersji 3.4: Новий файловий дескриптор тепер не успадковується.
- os.dup2(fd, fd2, inheritable=True)¶
Дублюйте файловий дескриптор fd до fd2, закриваючи останній, якщо необхідно. Повернути fd2. Новий файловий дескриптор inheritable за замовчуванням або не успадковується, якщо inheritable має значення
False
.Dostępność: not WASI.
Zmienione w wersji 3.4: Додайте необов’язковий параметр inheritable.
Zmienione w wersji 3.7: Повернути fd2 у разі успіху. Раніше завжди повертався
None
.
- os.fchmod(fd, mode)¶
Змініть режим файлу, заданий fd, на числовий режим. Перегляньте документацію для
chmod()
, щоб дізнатися про можливі значення mode. Починаючи з Python 3.3, це еквівалентноos.chmod(fd, mode)
.Викликає подію аудиту
os.chmod
з аргументамиpath
,mode
,dir_fd
.Dostępność: Unix, Windows.
Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
Zmienione w wersji 3.13: Добавлена поддержка Windows.
- os.fchown(fd, uid, gid)¶
Змініть ідентифікатор власника та групи файлу, наданий fd, на числові uid і gid. Щоб залишити один із ідентифікаторів без змін, встановіть для нього значення -1. Дивіться
chown()
. Починаючи з Python 3.3, це еквівалентноos.chown(fd, uid, gid)
.Викликає подію аудиту
os.chown
з аргументамиpath
,uid
,gid
,dir_fd
.Dostępność: Unix.
Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
- os.fdatasync(fd)¶
Примусовий запис файлу з файловим дескриптором fd на диск. Не примусово оновлювати метадані.
Dostępność: Unix.
Informacja
Ta funkcja nie jest dostępna w 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)
.Dostępność: Unix.
- os.fstat(fd)¶
Отримати статус дескриптора файлу fd. Повертає об’єкт
stat_result
.Починаючи з Python 3.3, це еквівалентно
os.stat(fd)
.Zobacz także
Функція
stat()
.
- os.fstatvfs(fd, /)¶
Повертає інформацію про файлову систему, яка містить файл, пов’язаний із файловим дескриптором fd, наприклад
statvfs()
. Починаючи з Python 3.3, це еквівалентноos.statvfs(fd)
.Dostępność: Unix.
- os.fsync(fd)¶
Принудительная запись файла с файловым дескриптором fd на диск. В Unix это вызывает родной
fsync()
функция; в Windows, MS_commit()
функция.Якщо ви починаєте з буферизованого file object Python f, спочатку виконайте
f.flush()
, а потім виконайтеos.fsync(f.fileno())
, щоб переконатися, що всі внутрішні буфери, пов’язані з f, записуються на диск.Dostępność: Unix, Windows.
- os.ftruncate(fd, length, /)¶
Обріжте файл, що відповідає файловому дескриптору fd, щоб він мав розмір не більше length байтів. Починаючи з Python 3.3, це еквівалентно
os.truncate(fd, length)
.Викликає подію аудиту
os.truncate
з аргументамиfd
,length
.Dostępność: Unix, Windows.
Zmienione w wersji 3.5: Windows için destek eklendi
- os.get_blocking(fd, /)¶
Отримати режим блокування дескриптора файлу:
False
, якщо встановлено прапорецьO_NONBLOCK
,True
, якщо прапорець знято.Дивіться також
set_blocking()
іsocket.socket.setblocking()
.Dostępność: Unix, Windows.
Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
В Windows эта функция ограничена каналами.
Dodane w wersji 3.5.
Zmienione w wersji 3.12: Добавлена поддержка каналов в Windows.
- os.grantpt(fd, /)¶
Предоставьте доступ к подчиненному псевдотерминальному устройству, связанному с главным псевдотерминальным устройством, на которое ссылается файловый дескриптор fd. Дескриптор файла fd не закрывается в случае сбоя.
Вызывает функцию стандартной библиотеки C.
grantpt()
.Dostępność: Unix, not WASI.
Dodane w wersji 3.13.
- os.isatty(fd, /)¶
Повертає
True
, якщо файловий дескриптор fd відкрито та підключено до tty(-like) пристрою, інакшеFalse
.
- os.lockf(fd, cmd, len, /)¶
Застосуйте, перевірте або видаліть блокування POSIX для відкритого файлового дескриптора. fd — дескриптор відкритого файлу. cmd визначає команду для використання - одну з
F_LOCK
,F_TLOCK
,F_ULOCK
абоF_TEST
. len вказує розділ файлу, який потрібно заблокувати.Викликає подію аудиту
os.lockf
з аргументамиfd
,cmd
,len
.Dostępność: Unix.
Dodane w wersji 3.3.
- os.F_LOCK¶
- os.F_TLOCK¶
- os.F_ULOCK¶
- os.F_TEST¶
Прапорці, які вказують, яку дію виконуватиме
lockf()
.Dostępność: Unix.
Dodane w wersji 3.3.
- os.login_tty(fd, /)¶
Подготовьте tty, fd которого является дескриптором файла для нового сеанса входа в систему. Сделайте вызывающий процесс лидером сеанса; сделать tty управляющим терминалом, stdin, stdout и stderr вызывающего процесса; закрыть ФД.
Dostępność: Unix, not WASI.
Dodane w wersji 3.11.
- os.lseek(fd, pos, whence, /)¶
Установите текущую позицию файлового дескриптора fd в позицию pos, измененную whence, и верните новую позицию в байтах относительно начала файла. Допустимые значения для wherefrom:
SEEK_SET
или0
– устанавливаем pos относительно начала файлаSEEK_CUR
или1
– установить pos относительно текущей позиции файлаSEEK_END
или2
– установить pos относительно конца файлаSEEK_HOLE
– установить pos в следующую ячейку данных относительно posSEEK_DATA
– установить pos в следующую дырку данных относительно pos
Zmienione w wersji 3.3: Добавить поддержку
SEEK_HOLE
иSEEK_DATA
.
- os.SEEK_SET¶
- os.SEEK_CUR¶
- os.SEEK_END¶
Параметры
lseek()
функция иseek()
метод для :term:`файлоподобных объектов `, откуда настроить индикатор положения файла.SEEK_SET
Отрегулируйте положение файла относительно начала файла.
SEEK_CUR
Отрегулируйте положение файла относительно текущей позиции файла.
SEEK_END
Отрегулируйте положение файла относительно конца файла.
Их значения равны 0, 1 и 2 соответственно.
- os.SEEK_HOLE¶
- os.SEEK_DATA¶
Параметры
lseek()
функция иseek()
метод для :term:`файлоподобных объектов `, для поиска файловых данных и дыр в редко выделенных файлах.SEEK_DATA
Отрегулируйте смещение файла до следующего места, содержащего данные, относительно позиции поиска.
SEEK_HOLE
Отрегулируйте смещение файла до следующего места, содержащего отверстие, относительно позиции поиска. Дыра определяется как последовательность нулей.
Informacja
Эти операции имеют смысл только для файловых систем, которые их поддерживают.
Dostępność: Linux >= 3.1, macOS, Unix
Dodane w wersji 3.3.
- os.open(path, flags, mode=0o777, *, dir_fd=None)¶
Відкрийте шлях до файлу та встановіть різні позначки відповідно до flags і, можливо, його режим відповідно до mode. Під час обчислення режиму поточне значення umask спочатку маскується. Повертає файловий дескриптор для щойно відкритого файлу. Новий файловий дескриптор не успадковується.
Для опису значень прапора та режиму дивіться документацію про час виконання C; константи прапорів (наприклад,
O_RDONLY
іO_WRONLY
) визначені в модуліos
. Зокрема, у Windows додаванняO_BINARY
потрібне для відкриття файлів у бінарному режимі.Ця функція може підтримувати шляхи відносно дескрипторів каталогу з параметром dir_fd.
Rzuca auditing event
open
z argumentamipath
,mode
,flags
.Zmienione w wersji 3.4: Новий файловий дескриптор тепер не успадковується.
Informacja
Ця функція призначена для низькорівневого введення-виведення. Для звичайного використання використовуйте вбудовану функцію
open()
, яка повертає об’єкт file object з методамиread()
іwrite()
(і набагато більше). Щоб обернути файловий дескриптор у файловий об’єкт, використовуйтеfdopen()
.Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.5: Jeśli wywołanie systemowe zostanie przerwane, a program obsługi sygnału nie rzuci wyjątku, funkcji ponawia teraz wywołanie systemowe zamiast rzucenja wyjątku
InterruptedError
(zobacz PEP 475 dla uzasadnienia).Zmienione w wersji 3.6: Accepts a path-like object.
Наступні константи є опціями для параметра flags функції open()
. Їх можна комбінувати за допомогою порозрядного оператора АБО |
. Деякі з них доступні не на всіх платформах. Для опису їх доступності та використання зверніться до 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¶
Yukarıdaki sabitler Unix ve Windows’ta mevcuttur.
- os.O_DSYNC¶
- os.O_RSYNC¶
- os.O_SYNC¶
- os.O_NDELAY¶
- os.O_NONBLOCK¶
- os.O_NOCTTY¶
- os.O_CLOEXEC¶
Yukarıdaki sabitler yalnız Unix’te mevcuttur.
Zmienione w wersji 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¶
Yukarıdaki sabitler yalnız Windows’ta mevcuttur.
- os.O_EVTONLY¶
- os.O_FSYNC¶
- os.O_SYMLINK¶
- os.O_NOFOLLOW_ANY¶
Наведені вище константи доступні лише в macOS.
Zmienione w wersji 3.10: Додайте константи
O_EVTONLY
,O_FSYNC
,O_SYMLINK
іO_NOFOLLOW_ANY
.
- 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 відповідно. Нові дескриптори файлів не успадковуються. Для (трохи) більш портативного підходу використовуйте модульpty
.Dostępność: Unix, not WASI.
Zmienione w wersji 3.4: Нові файлові дескриптори тепер не успадковуються.
- os.pipe()¶
Створіть трубу. Повертає пару файлових дескрипторів
(r, w)
, які можна використовувати для читання та запису відповідно. Новий файловий дескриптор не успадковується.Dostępność: Unix, Windows.
Zmienione w wersji 3.4: Нові файлові дескриптори тепер не успадковуються.
- os.pipe2(flags, /)¶
Створіть трубу з прапорцями, встановленими атомарно. прапорці можуть бути створені шляхом об’єднання одного або кількох із цих значень
O_NONBLOCK
,O_CLOEXEC
. Повертає пару файлових дескрипторів(r, w)
, які можна використовувати для читання та запису відповідно.Dostępność: Unix, not WASI.
Dodane w wersji 3.3.
- os.posix_fallocate(fd, offset, len, /)¶
Переконується, що для файлу, указаного fd, виділено достатньо місця на диску, починаючи з offset і продовжуючи len байт.
Dostępność: Unix.
Dodane w wersji 3.3.
- os.posix_fadvise(fd, offset, len, advice, /)¶
Оголошує про намір отримати доступ до даних за певним шаблоном, що дозволяє ядру проводити оптимізацію. Порада стосується регіону файлу, визначеного fd, починаючи з offset і продовжуючи len байти. порада є одним із
POSIX_FADV_NORMAL
,POSIX_FADV_SEQUENTIAL
,POSIX_FADV_RANDOM
,POSIX_FADV_NOREUSE
,POSIX_FADV_WILLNEED
абоPOSIX_FADV_DONTNEED
.Dostępność: Unix.
Dodane w wersji 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()
, які визначають шаблон доступу, який, імовірно, буде використаний.Dostępność: Unix.
Dodane w wersji 3.3.
- os.pread(fd, n, offset, /)¶
Прочитати щонайбільше n байт із файлового дескриптора fd у позиції offset, залишаючи зміщення файлу незмінним.
Повертає байтовий рядок, що містить прочитані байти. Якщо досягнуто кінця файлу, на який посилається fd, повертається порожній об’єкт bytes.
Dostępność: Unix.
Dodane w wersji 3.3.
- os.posix_openpt(oflag, /)¶
Откройте и верните файловый дескриптор главного псевдотерминального устройства.
Вызывает функцию стандартной библиотеки C.
posix_openpt()
. Аргумент oflag используется для установки флагов состояния файла и режимов доступа к файлу, как указано на странице руководства поposix_openpt()
вашей системы.Возвращенный файловый дескриптор не наследуется. . Если значение :data:`O_CLOEXEC доступен в системе, он добавляется в oflag.
Dostępność: Unix, not WASI.
Dodane w wersji 3.13.
- os.preadv(fd, buffers, offset, flags=0, /)¶
Читання з файлового дескриптора fd у позиції offset у змінні байт-подібні об’єкти buffers, залишаючи зміщення файлу незмінним. Передайте дані в кожен буфер, доки він не заповниться, а потім перейдіть до наступного буфера в послідовності, щоб утримувати решту даних.
Аргумент flags містить порозрядне АБО нуля або більше таких прапорів:
Повертає загальну кількість фактично прочитаних байтів, яка може бути меншою за загальну ємність усіх об’єктів.
Операційна система може встановити обмеження (
sysconf()
значення'SC_IOV_MAX'
) на кількість буферів, які можна використовувати.Поєднайте функціональні можливості
os.readv()
іos.pread()
.Dostępność: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1.
Для использования флагов требуется Linux >= 4.6.
Dodane w wersji 3.7.
- os.RWF_NOWAIT¶
Не чекайте даних, які доступні не відразу. Якщо вказано цей прапорець, системний виклик повернеться миттєво, якщо йому доведеться прочитати дані з резервного сховища або дочекатися блокування.
Если некоторые данные были успешно прочитаны, они вернут количество прочитанных байтов. Если ни один байт не был прочитан, он вернет
-1
и установите errno наerrno.EAGAIN
.Dostępność: Linux >= 4.14.
Dodane w wersji 3.7.
- os.RWF_HIPRI¶
Високий пріоритет читання/запису. Дозволяє файловим системам на основі блоків використовувати опитування пристрою, що забезпечує меншу затримку, але може використовувати додаткові ресурси.
Наразі в Linux цю функцію можна використовувати лише для дескриптора файлу, відкритого за допомогою позначки
O_DIRECT
.Dostępność: Linux >= 4.6.
Dodane w wersji 3.7.
- os.ptsname(fd, /)¶
Возвращает имя подчиненного псевдотерминального устройства, связанного с главным псевдотерминальным устройством, на которое ссылается файловый дескриптор fd. Дескриптор файла fd не закрывается в случае сбоя.
Вызывает реентерабельную функцию стандартной библиотеки C.
ptsname_r()
если он доступен; в противном случае функция стандартной библиотеки Cptsname()
, который не гарантированно является потокобезопасным.Dostępność: Unix, not WASI.
Dodane w wersji 3.13.
- os.pwrite(fd, str, offset, /)¶
Запишіть байтовий рядок у str у файловий дескриптор fd у позиції offset, залишаючи зміщення файлу без змін.
Повертає кількість фактично записаних байтів.
Dostępność: Unix.
Dodane w wersji 3.3.
- os.pwritev(fd, buffers, offset, flags=0, /)¶
Запишите содержимое buffers в файловый дескриптор fd по смещению offset, оставив смещение файла неизменным. буферы должны представлять собой последовательность :term:`байтоподобных объектов `. Буферы обрабатываются в порядке массива. Все содержимое первого буфера записывается перед переходом ко второму и так далее.
Аргумент flags містить порозрядне АБО нуля або більше таких прапорів:
Повертає загальну кількість фактично записаних байтів.
Операційна система може встановити обмеження (
sysconf()
значення'SC_IOV_MAX'
) на кількість буферів, які можна використовувати.Поєднайте функції
os.writev()
іos.pwrite()
.Dostępność: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1.
Для использования флагов требуется Linux >= 4.6.
Dodane w wersji 3.7.
- os.RWF_DSYNC¶
Надайте еквівалент для кожного запису прапора
O_DSYNC
os.open()
. Цей ефект прапора застосовується лише до діапазону даних, записаного системним викликом.Dostępność: Linux >= 4.7.
Dodane w wersji 3.7.
- os.RWF_SYNC¶
Надайте еквівалент для кожного запису прапора
O_SYNC
os.open()
. Цей ефект прапора застосовується лише до діапазону даних, записаного системним викликом.Dostępność: Linux >= 4.7.
Dodane w wersji 3.7.
- os.RWF_APPEND¶
Надайте еквівалент для кожного запису прапора
O_APPEND
os.open()
. Цей прапор має значення лише дляos.pwritev()
, і його дія стосується лише діапазону даних, записаного системним викликом. Аргумент offset не впливає на операцію запису; дані завжди додаються в кінець файлу. Однак, якщо аргумент offset дорівнює-1
, поточний файл offset оновлюється.Dostępność: Linux >= 4.16.
Dodane w wersji 3.10.
- os.read(fd, n, /)¶
Прочитати щонайбільше n байт із файлового дескриптора fd.
Повертає байтовий рядок, що містить прочитані байти. Якщо досягнуто кінця файлу, на який посилається fd, повертається порожній об’єкт bytes.
Informacja
Ця функція призначена для низькорівневого вводу-виводу та має застосовуватися до дескриптора файлу, який повертає
os.open()
абоpipe()
. Щоб прочитати „файловий об’єкт”, повернутий вбудованою функцієюopen()
абоpopen()
абоfdopen()
, абоsys.stdin
, використовуйте йогоread()
абоreadline()
методи.Zmienione w wersji 3.5: Jeśli wywołanie systemowe zostanie przerwane, a program obsługi sygnału nie rzuci wyjątku, funkcji ponawia teraz wywołanie systemowe zamiast rzucenja wyjątku
InterruptedError
(zobacz PEP 475 dla uzasadnienia).
- os.sendfile(out_fd, in_fd, offset, count)¶
- os.sendfile(out_fd, in_fd, offset, count, headers=(), trailers=(), flags=0)
Скопіюйте count байтів із файлового дескриптора in_fd до файлового дескриптора out_fd, починаючи зі offset. Повертає кількість надісланих байтів. Коли EOF досягнуто, повертає
0
.Першу нотацію функції підтримують усі платформи, які визначають
sendfile()
.У Linux, якщо offset задано як
None
, байти зчитуються з поточної позиції in_fd, а позиція in_fd оновлюється.Другий випадок можна використовувати в macOS і FreeBSD, де заголовки і кінці є довільними послідовностями буферів, які записуються до і після запису даних з in_fd. Він повертає те саме, що й перший випадок.
У macOS і FreeBSD значення
0
для count вказує на надсилання до кінця in_fd.Усі платформи підтримують сокети як файловий дескриптор out_fd, а деякі платформи також дозволяють інші типи (наприклад, звичайний файл, канал).
Міжплатформні програми не повинні використовувати аргументи headers, trailers і flags.
Dostępność: Unix, not WASI.
Informacja
Щоб отримати обгортку вищого рівня
sendfile()
, перегляньтеsocket.socket.sendfile()
.Dodane w wersji 3.3.
Zmienione w wersji 3.9: Параметри out і in перейменовано на out_fd і in_fd.
- os.SF_NODISKIO¶
- os.SF_MNOWAIT¶
- os.SF_SYNC¶
Параметри функції
sendfile()
, якщо реалізація їх підтримує.Dostępność: Unix, not WASI.
Dodane w wersji 3.3.
- os.SF_NOCACHE¶
Параметр для
отправить файл()
функция, если реализация поддерживает ее. Данные не будут кэшироваться в виртуальной памяти и впоследствии будут освобождены.Dostępność: Unix, not WASI.
Dodane w wersji 3.11.
- os.set_blocking(fd, blocking, /)¶
Встановити режим блокування вказаного файлового дескриптора. Установіть прапорець
O_NONBLOCK
, якщо блокування має значенняFalse
, зніміть прапорець в іншому випадку.Дивіться також
get_blocking()
іsocket.socket.setblocking()
.Dostępność: Unix, Windows.
Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
В Windows эта функция ограничена каналами.
Dodane w wersji 3.5.
Zmienione w wersji 3.12: Добавлена поддержка каналов в Windows.
- os.splice(src, dst, count, offset_src=None, offset_dst=None)¶
Transfer count bytes from file descriptor src, starting from offset offset_src, to file descriptor dst, starting from offset offset_dst. At least one of the file descriptors must refer to a pipe. If offset_src is
None
, then src is read from the current position; respectively for offset_dst. The offset associated to the file descriptor that refers to a pipe must beNone
. The files pointed to by src and dst must reside in the same filesystem, otherwise anOSError
is raised witherrno
set toerrno.EXDEV
.Ця копія виконується без додаткових витрат на передачу даних із ядра в простір користувача, а потім назад у ядро. Крім того, деякі файлові системи можуть реалізувати додаткові оптимізації. Копіювання виконується так, ніби обидва файли відкриваються як двійкові.
Після успішного завершення повертає кількість байтів, з’єднаних із каналом або з каналу. Повернене значення 0 означає кінець введення. Якщо src посилається на канал, це означає, що не було даних для передачі, і не було б сенсу блокувати, оскільки немає записувачів, підключених до кінця каналу для запису.
Dostępność: Linux >= 2.6.17 with glibc >= 2.5
Dodane w wersji 3.10.
- os.readv(fd, buffers, /)¶
Читання з файлового дескриптора fd у кілька змінних байт-подібних об’єктів буферів. Передайте дані в кожен буфер, доки він не заповниться, а потім перейдіть до наступного буфера в послідовності, щоб утримувати решту даних.
Повертає загальну кількість фактично прочитаних байтів, яка може бути меншою за загальну ємність усіх об’єктів.
Операційна система може встановити обмеження (
sysconf()
значення'SC_IOV_MAX'
) на кількість буферів, які можна використовувати.Dostępność: Unix.
Dodane w wersji 3.3.
- os.tcgetpgrp(fd, /)¶
Повертає групу процесів, пов’язану з терміналом, задану fd (дескриптор відкритого файлу, який повертає
os.open()
).Dostępność: Unix, not WASI.
- os.tcsetpgrp(fd, pg, /)¶
Встановіть групу процесів, пов’язану з терміналом, надану fd (дескриптор відкритого файлу, який повертає
os.open()
), на pg.Dostępność: Unix, not WASI.
- os.ttyname(fd, /)¶
Повертає рядок, який визначає термінальний пристрій, пов’язаний із файловим дескриптором fd. Якщо fd не пов’язано з термінальним пристроєм, виникає виняток.
Dostępność: Unix.
- os.unlockpt(fd, /)¶
Разблокируйте подчиненное псевдотерминальное устройство, связанное с главным псевдотерминальным устройством, на которое ссылается файловый дескриптор fd. Дескриптор файла fd не закрывается в случае сбоя.
Вызывает функцию стандартной библиотеки C.
unlockpt()
.Dostępność: Unix, not WASI.
Dodane w wersji 3.13.
- os.write(fd, str, /)¶
Запишіть байтовий рядок у str до файлового дескриптора fd.
Повертає кількість фактично записаних байтів.
Informacja
Ця функція призначена для низькорівневого вводу-виводу та має застосовуватися до дескриптора файлу, який повертає
os.open()
абоpipe()
. Щоб записати „файловий об’єкт”, який повертає вбудована функціяopen()
абоpopen()
абоfdopen()
, абоsys.stdout
абоsys.stderr
, використовуйте його методwrite()
.Zmienione w wersji 3.5: Jeśli wywołanie systemowe zostanie przerwane, a program obsługi sygnału nie rzuci wyjątku, funkcji ponawia teraz wywołanie systemowe zamiast rzucenja wyjątku
InterruptedError
(zobacz PEP 475 dla uzasadnienia).
- os.writev(fd, buffers, /)¶
Запишіть вміст buffers у файловий дескриптор fd. буфери мають бути послідовністю байт-подібних об’єктів. Буфери обробляються в порядку масиву. Весь вміст першого буфера записується перед переходом до другого і так далі.
Повертає загальну кількість фактично записаних байтів.
Операційна система може встановити обмеження (
sysconf()
значення'SC_IOV_MAX'
) на кількість буферів, які можна використовувати.Dostępność: Unix.
Dodane w wersji 3.3.
Запит розміру терміналу¶
Dodane w wersji 3.3.
- os.get_terminal_size(fd=STDOUT_FILENO, /)¶
Повертає розмір вікна терміналу як
(стовпці, рядки)
, кортеж типуterminal_size
.Додатковий аргумент
fd
(за замовчуваннямSTDOUT_FILENO
або стандартний вивід) визначає, який дескриптор файлу слід запитувати.Якщо дескриптор файлу не підключено до терміналу, виникає
OSError
.shutil.get_terminal_size()
— це функція високого рівня, яка зазвичай повинна використовуватися,os.get_terminal_size
— це реалізація низького рівня.Dostępność: Unix, Windows.
Успадкування файлових дескрипторів¶
Dodane w wersji 3.4.
Файловий дескриптор має позначку „успадковуваний”, яка вказує, чи може файловий дескриптор успадковуватися дочірніми процесами. Починаючи з Python 3.4, дескриптори файлів, створені Python, за замовчуванням не успадковуються.
В UNIX неуспадковані файлові дескриптори закриваються в дочірніх процесах під час виконання нової програми, інші файлові дескриптори успадковуються.
У Windows неуспадковані дескриптори та дескриптори файлів закриті в дочірніх процесах, за винятком стандартних потоків (дескриптори файлів 0, 1 і 2: stdin, stdout і stderr), які завжди успадковуються. За допомогою функцій spawn*
успадковуються всі успадковані маркери та всі успадковані дескриптори файлів. За допомогою модуля subprocess
усі файлові дескриптори, крім стандартних потоків, закриваються, а успадковані дескриптори успадковуються, лише якщо параметр close_fds має значення False
.
На платформах WebAssembly дескриптор файла нельзя изменить.
- os.get_inheritable(fd, /)¶
Отримайте позначку „успадкований” зазначеного файлового дескриптора (логічне значення).
- os.set_inheritable(fd, inheritable, /)¶
Встановіть прапорець „успадкований” для зазначеного файлового дескриптора.
- os.get_handle_inheritable(handle, /)¶
Отримайте прапор „успадкований” зазначеного маркера (логічне значення).
Dostępność: Windows.
- os.set_handle_inheritable(handle, inheritable, /)¶
Встановіть прапорець „успадкований” для вказаного маркера.
Dostępność: Windows.
Dosyalar ve Dizinler¶
На деяких платформах Unix багато з цих функцій підтримують одну або кілька таких функцій:
зазначення дескриптора файлу: Зазвичай аргумент path, який надається функціям у модулі
os
, має бути рядком, що вказує шлях до файлу. Однак деякі функції тепер альтернативно приймають дескриптор відкритого файлу для свого аргументу path. Потім функція працюватиме з файлом, на який посилається дескриптор. (Для систем POSIX Python викличе варіант функції з префіксомf
(наприклад, викликfchdir
замістьchdir
).)Ви можете перевірити, чи можна вказати шлях як дескриптор файлу для певної функції на вашій платформі за допомогою
os.supports_fd
. Якщо ця функція недоступна, її використання призведе до помилкиNotImplementedError
.Якщо функція також підтримує аргументи dir_fd або follow_symlinks, буде помилкою вказати один із них під час надання шляху як дескриптора файлу.
шляхи відносно дескрипторів каталогу: Якщо dir_fd не є
None
, це має бути дескриптор файлу, який посилається на каталог, а шлях для роботи має бути відносним; тоді шлях буде відносним до цього каталогу. Якщо шлях абсолютний, dir_fd ігнорується. (Для систем POSIX Python викличе варіант функції з суфіксомat
і, можливо, з префіксомf
(наприклад, викликfaccessat
замістьaccess
).Ви можете перевірити, чи підтримується dir_fd для певної функції на вашій платформі за допомогою
os.supports_dir_fd
. Якщо він недоступний, його використання призведе до помилкиNotImplementedError
.
не слідувати за символічними посиланнями: Якщо 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, щоб перевірити доступ до шляху. Зауважте, що більшість операцій використовуватиме ефективний uid/gid, тому цю підпрограму можна використовувати в середовищі suid/sgid, щоб перевірити, чи має користувач, який викликає, вказаний доступ до path. режим має бути
F_OK
, щоб перевірити існування шляху, або він може бути включним АБО одного чи кількох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
.Informacja
Використовуючи
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()
Informacja
Операції вводу/виводу можуть завершуватися невдачею, навіть якщо
access()
вказує, що вони будуть успішними, особливо для операцій у мережевих файлових системах, які можуть мати семантику дозволів за межами звичайної бітової моделі дозволів POSIX.Zmienione w wersji 3.3: Додано параметри dir_fd, effective_ids і follow_symlinks.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.F_OK¶
- os.R_OK¶
- os.W_OK¶
- os.X_OK¶
Значення, які потрібно передавати як параметр mode
access()
, щоб перевірити наявність, читабельність, запис і можливість виконання path відповідно.
- os.chdir(path)¶
Змініть поточний робочий каталог на шлях.
Ця функція може підтримувати зазначення файлового дескриптора. Дескриптор має посилатися на відкритий каталог, а не на відкритий файл.
Ця функція може викликати
OSError
і підкласи, такі якFileNotFoundError
,PermissionError
іNotADirectoryError
.Викликає подію аудиту
os.chdir
з аргументомpath
.Zmienione w wersji 3.3: Додано підтримку вказівки шляху як дескриптора файлу на деяких платформах.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.chflags(path, flags, *, follow_symlinks=True)¶
Встановіть прапорці шляху на числові прапорці. flags може приймати комбінацію (порозрядне АБО) таких значень (як визначено в модулі
stat
):Ця функція підтримує неперехід за символічними посиланнями.
Викликає подію аудиту
os.chflags
з аргументамиpath
,flags
.Dostępność: Unix, not WASI.
Zmienione w wersji 3.3: Добавлен параметр follow_symlinks.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)¶
Змініть режим шляху на числовий режим. mode може приймати одне з наступних значень (як визначено в модулі
stat
) або їх комбінації порозрядними АБО:Ця функція може підтримувати зазначення дескриптора файлу, шляхи відносно дескрипторів каталогу та неперехід за символічними посиланнями.
Informacja
Хотя Windows поддерживает
chmod()
, вы можете установить для файла только флаг «только для чтения» (черезstat.S_IWRITE
иstat.S_IREAD
константы или соответствующее целое значение). Все остальные биты игнорируются. Значение по умолчанию follow_symlinks:Ложь
в Windows.Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
Викликає подію аудиту
os.chmod
з аргументамиpath
,mode
,dir_fd
.Zmienione w wersji 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу, а також аргументів dir_fd і follow_symlinks.
Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.13: Добавлена поддержка файлового дескриптора и аргумента follow_symlinks в Windows.
- os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)¶
Змініть власника та ідентифікатор групи path на числові uid і gid. Щоб залишити один із ідентифікаторів без змін, встановіть для нього значення -1.
Ця функція може підтримувати зазначення дескриптора файлу, шляхи відносно дескрипторів каталогу та неперехід за символічними посиланнями.
Перегляньте
shutil.chown()
для функції вищого рівня, яка приймає імена на додаток до числових ідентифікаторів.Викликає подію аудиту
os.chown
з аргументамиpath
,uid
,gid
,dir_fd
.Dostępność: Unix.
Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
Zmienione w wersji 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу, а також аргументів dir_fd і follow_symlinks.
Zmienione w wersji 3.6: Підтримує path-like object.
- os.chroot(path)¶
Змініть кореневий каталог поточного процесу на шлях.
Dostępność: Unix, not WASI, not Android.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.fchdir(fd)¶
Змініть поточний робочий каталог на каталог, представлений дескриптором файлу fd. Дескриптор має посилатися на відкритий каталог, а не на відкритий файл. Починаючи з Python 3.3, це еквівалентно
os.chdir(fd)
.Викликає подію аудиту
os.chdir
з аргументомpath
.Dostępność: Unix.
- os.getcwd()¶
Повертає рядок, що представляє поточний робочий каталог.
- os.getcwdb()¶
Повертає байтовий рядок, що представляє поточний робочий каталог.
Zmienione w wersji 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)
.Викликає подію аудиту
os.chflags
з аргументамиpath
,flags
.Dostępność: Unix, not WASI.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.lchmod(path, mode)¶
Змініть режим шляху на числовий режим. Якщо шлях є символічним посиланням, це впливає на символічне посилання, а не на ціль. Перегляньте документацію для
chmod()
, щоб дізнатися про можливі значення mode. Починаючи з Python 3.3, це еквівалентноos.chmod(path, mode, follow_symlinks=False)
.lchmod()
не является частью POSIX, но реализации Unix могут иметь его, если поддерживается изменение режима символических ссылок.Викликає подію аудиту
os.chmod
з аргументамиpath
,mode
,dir_fd
.Dostępność: Unix, Windows, not Linux, FreeBSD >= 1.3, NetBSD >= 1.3, not OpenBSD
Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.13: Добавлена поддержка Windows.
- os.lchown(path, uid, gid)¶
Змініть власника та ідентифікатор групи path на числові uid і gid. Ця функція не переходитиме за символічними посиланнями. Починаючи з Python 3.3, це еквівалентно
os.chown(path, uid, gid, follow_symlinks=False)
.Викликає подію аудиту
os.chown
з аргументамиpath
,uid
,gid
,dir_fd
.Dostępność: Unix.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)¶
Створіть жорстке посилання на src під назвою dst.
This function can support specifying src_dir_fd and/or dst_dir_fd to supply paths relative to directory descriptors, and not following symlinks.
Викликає подію аудиту
os.link
з аргументамиsrc
,dst
,src_dir_fd
,dst_dir_fd
.Dostępność: Unix, Windows.
Zmienione w wersji 3.2: Dodano wsparcie dla WIndowsa.
Zmienione w wersji 3.3: Добавлены параметры src_dir_fd, dst_dir_fd и follow_symlinks.
Zmienione w wersji 3.6: Приймає path-like object для src і dst.
- os.listdir(path='.')¶
Повертає список, що містить імена записів у каталозі, заданому шляхом. Список розташований у довільному порядку й не містить спеціальних записів
'.''
і'..''
, навіть якщо вони присутні в каталозі. Якщо файл видалено з каталогу або додано до нього під час виклику цієї функції, не вказано, чи буде включено ім’я цього файлу.path може бути path-like object. Якщо path має тип
bytes
(прямо чи опосередковано через інтерфейсPathLike
), повернуті імена файлів також будуть типуbytes
; за всіх інших обставин вони будуть типуstr
.Ця функція також може підтримувати зазначення файлового дескриптора; дескриптор файлу повинен посилатися на каталог.
Викликає подію аудиту
os.listdir
з аргументомpath
.Informacja
Щоб закодувати
str
імена файлів убайти
, використовуйтеfsencode()
.Zobacz także
Функція
scandir()
повертає записи каталогу разом із інформацією про атрибути файлів, забезпечуючи кращу продуктивність у багатьох поширених випадках використання.Zmienione w wersji 3.2: Параметр path став необов’язковим.
Zmienione w wersji 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.listdrives()¶
Возвращает список, содержащий имена дисков в системе Windows.
Имя диска обычно выглядит так
'C:\\'
. Не каждое имя диска будет связано с томом, а некоторые могут быть недоступны по ряду причин, включая разрешения, сетевое подключение или отсутствие носителя. Эта функция не проверяет доступ.Может поднять
OSError
если возникает ошибка при сборе имен дисков.Вызывает событие аудита ` ``os.listdrives` без каких-либо аргументов.
Dostępność: Windows
Dodane w wersji 3.12.
- os.listmounts(volume)¶
Возвращает список, содержащий точки монтирования тома в системе Windows.
volume должен быть представлен как путь GUID, например, возвращаемый
os.listvolumes()
. Тома могут быть смонтированы в нескольких местах или не смонтированы вообще. В последнем случае список будет пуст. Точки монтирования, не связанные с томом, не будут возвращены этой функцией.Точки монтирования, возвращаемые этой функцией, будут абсолютными путями и могут быть длиннее имени диска.
Поднимает
OSError
если том не распознан или возникла ошибка при сборе путей.Вызывает событие аудита ` ``os.listmounts` с аргументом
объем
.Dostępność: Windows
Dodane w wersji 3.12.
- os.listvolumes()¶
Возвращает список, содержащий тома в системе.
Тома обычно представляются как путь GUID, который выглядит так:
\\?\Volume{xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\
. Доступ к файлам обычно можно получить через путь GUID, если позволяют разрешения. Однако пользователи, как правило, с ними не знакомы, поэтому рекомендуется использовать эту функцию для получения точек монтирования с помощьюos.listmounts()
.Может поднять
OSError
если возникает ошибка при сборе томов.Вызывает событие аудита ` ``os.listvolumes` без каких-либо аргументов.
Dostępność: Windows
Dodane w wersji 3.12.
- os.lstat(path, *, dir_fd=None)¶
Выполните эквивалент
lstat()
системный вызов по заданному пути. Похоже на:stat()
, но не следует по символическим ссылкам. Вернутьstat_result
объект.На платформах, які не підтримують символічні посилання, це псевдонім для
stat()
.Починаючи з Python 3.3, це еквівалентно
os.stat(path, dir_fd=dir_fd, follow_symlinks=False)
.Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.
Zobacz także
Функція
stat()
.Zmienione w wersji 3.2: Windows 6.0 (Vista) sembolik bağlantıları için destek eklendi.
Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.8: У Windows тепер відкриваються точки повторного аналізу, які представляють інший шлях (сурогати імен), включаючи символічні посилання та з’єднання каталогів. Інші типи точок повторного аналізу вирішуються операційною системою як для
stat()
.
- os.mkdir(path, mode=0o777, *, dir_fd=None)¶
Створіть каталог під назвою path із числовим режимом mode.
Якщо каталог уже існує, виникає
FileExistsError
. Якщо батьківський каталог у шляху не існує, виникаєFileNotFoundError
.У деяких системах режим ігнорується. Там, де воно використовується, поточне значення umask спочатку маскується. Якщо встановлено інші біти, ніж останні 9 (тобто останні 3 цифри вісімкового представлення режиму), їхнє значення залежить від платформи. На деяких платформах вони ігноруються, і вам слід явно викликати
chmod()
, щоб встановити їх.В Windows режим
0o700
специально обрабатывается для применения контроля доступа к новому каталогу, чтобы доступ имели только текущий пользователь и администраторы. Другие значения mode игнорируются.Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.
Також є можливість створювати тимчасові каталоги; подивіться функцію
tempfile.mkdtemp()
модуляtempfile
.Викликає подію аудиту
os.mkdir
з аргументамиpath
,mode
,dir_fd
.Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.13: Windows теперь поддерживает режим
0o700
.
- os.makedirs(name, mode=0o777, exist_ok=False)¶
Функція рекурсивного створення каталогу. Подібно до
mkdir()
, але створює всі каталоги середнього рівня, необхідні для того, щоб містити кінцевий каталог.Параметр mode передается в
mkdir()
для создания листового каталога; см. описание mkdir() ` для того, как это интерпретируется. Чтобы установить биты разрешений файлов для любых вновь созданных родительских каталогов, вы можете установить umask перед вызовом. :func:`madeirs . Биты прав доступа к файлам существующих родительских каталогов не изменяются.Если exist_ok
Ложь
(по умолчанию), аFileExistsError
возникает, если целевой каталог уже существует.Informacja
makedirs()
заплутає, якщо елементи шляху, які потрібно створити, включаютьpardir
(наприклад, „..” у системах UNIX).Ця функція правильно обробляє шляхи UNC.
Викликає подію аудиту
os.mkdir
з аргументамиpath
,mode
,dir_fd
.Zmienione w wersji 3.2: Добавлен параметр exist_ok.
Zmienione w wersji 3.4.1: До Python 3.4.1, якщо exist_ok було
True
і каталог існував,makedirs()
все одно викликав помилку, якщо mode не відповідав режиму існуючого каталогу. Оскільки таку поведінку було неможливо реалізувати безпечно, її було видалено в Python 3.4.1. Див. bpo-21082.Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.7: Аргумент mode больше не влияет на биты разрешений файлов вновь созданных каталогов промежуточного уровня.
- os.mkfifo(path, mode=0o666, *, dir_fd=None)¶
Створіть FIFO (іменований канал) під назвою path із числовим режимом mode. Поточне значення umask спочатку маскується з режиму.
Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.
FIFO — це канали, до яких можна отримати доступ, як до звичайних файлів. FIFO існують, доки їх не буде видалено (наприклад, за допомогою
os.unlink()
). Зазвичай FIFO використовуються як місце зустрічі між процесами типу „клієнт” і „сервер”: сервер відкриває FIFO для читання, а клієнт відкриває його для запису. Зверніть увагу, щоmkfifo()
не відкриває FIFO — він лише створює точку зустрічі.Dostępność: Unix, not WASI.
Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.mknod(path, mode=0o600, device=0, *, dir_fd=None)¶
Створіть вузол файлової системи (файл, спеціальний файл пристрою або іменований канал) під назвою шлях. mode визначає як дозволи для використання, так і тип вузла, який буде створено, поєднуючись (побітове АБО) з одним із
stat.S_IFREG
,stat.S_IFCHR
,stat.S_IFBLK
іstat.S_IFIFO
(ці константи доступні вstat
). Дляstat.S_IFCHR
іstat.S_IFBLK
device визначає щойно створений спеціальний файл пристрою (імовірно, використовуючиos.makedev()
), інакше він ігнорується.Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.
Dostępność: Unix, not WASI.
Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.major(device, /)¶
Извлеките основной номер устройства из необработанного номера устройства (обычно
st_dev
илиst_rdev
поле изstat
).
- os.minor(device, /)¶
Извлеките младший номер устройства из необработанного номера устройства (обычно
st_dev
илиst_rdev
поле из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
для номера помилки .Ця функція може підтримувати зазначення файлового дескриптора.
Dostępność: Unix.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.pathconf_names¶
Словник зіставляє імена, прийняті
pathconf()
іfpathconf()
до цілих значень, визначених для цих імен головною операційною системою. Це можна використовувати для визначення набору імен, відомих системі.Dostępność: Unix.
- os.readlink(path, *, dir_fd=None)¶
Повертає рядок, що представляє шлях, на який вказує символічне посилання. Результатом може бути абсолютний або відносний шлях; якщо він відносний, його можна перетворити на абсолютний шлях за допомогою
os.path.join(os.path.dirname(path), result)
.Якщо шлях є рядковим об’єктом (прямо чи опосередковано через інтерфейс
PathLike
), результат також буде рядковим об’єктом, і виклик може викликати UnicodeDecodeError. Якщо шлях є об’єктом bytes (прямим чи опосередкованим), результатом буде об’єкт bytes.Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.
Під час спроби визначити шлях, який може містити посилання, використовуйте
realpath()
для належної обробки рекурсії та відмінностей платформи.Dostępność: Unix, Windows.
Zmienione w wersji 3.2: Windows 6.0 (Vista) sembolik bağlantıları için destek eklendi.
Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Приймає path-like object в Unix.
Zmienione w wersji 3.8: Приймає path-like object і об’єкт bytes у Windows.
Додано підтримку для з’єднань каталогів і змінено, щоб повертати шлях підстановки (який зазвичай включає префікс
\\?\
), а не необов’язкове поле „назви для друку”, яке поверталося раніше.
- os.remove(path, *, dir_fd=None)¶
Удалить (удалить) файл путь. Если path — это каталог,
OSError
поднят. Использоватьrmdir()
удалить каталоги. Если файл не существует,FileNotFoundError
поднят.Ця функція може підтримувати шляхи відносно дескрипторів каталогу.
У Windows спроба видалити файл, який використовується, викликає виняток; в Unix запис каталогу видаляється, але сховище, виділене для файлу, не стає доступним, доки оригінальний файл більше не буде використовуватися.
Ця функція семантично ідентична
unlink()
.Викликає подію аудиту
os.remove
з аргументамиpath
,dir_fd
.Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.removedirs(name)¶
Видалити каталоги рекурсивно. Працює як
rmdir()
, за винятком того, що якщо кінцевий каталог успішно видалено,removedirs()
намагається послідовно видалити кожен батьківський каталог, згаданий у path, доки не виникне помилка (яка ігнорується, оскільки зазвичай означає, що батьківський каталог не порожній). Наприклад,os.removedirs('foo/bar/baz')
спочатку видалить каталог'foo/bar/baz'
, а потім видалить'foo/bar'
і'foo'
, якщо вони порожні. ВикликаєOSError
, якщо кінцевий каталог не вдалося успішно видалити.Викликає подію аудиту
os.remove
з аргументамиpath
,dir_fd
.Zmienione w wersji 3.6: Accepts a path-like object.
- os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)¶
Перейменуйте файл або каталог src на dst. Якщо dst існує, операція буде невдалою з підкласом
OSError
у кількох випадках:В Windows, если dst существует
FileExistsError
всегда повышен. Операция может завершиться неудачно, если src и dst находятся в разных файловых системах. Использоватьshutil.move()
для поддержки перехода в другую файловую систему.В Unix, якщо src є файлом, а dst є каталогом або навпаки, виникне
IsADirectoryError
абоNotADirectoryError
відповідно. Якщо обидва є каталогами, а dst порожній, dst буде мовчки замінено. Якщо dst є непорожнім каталогом, виникаєOSError
. Якщо обидва є файлами, dst буде замінено мовчки, якщо користувач має дозвіл. Операція може завершитися помилкою в деяких варіантах Unix, якщо src і dst знаходяться в різних файлових системах. У разі успіху перейменування буде атомарною операцією (це вимога POSIX).Ця функція може підтримувати вказівку src_dir_fd та/або dst_dir_fd для надання шляхів відносно дескрипторів каталогу.
Якщо ви бажаєте перезаписати місце призначення на різних платформах, використовуйте
replace()
.Викликає подію аудиту
os.rename
з аргументамиsrc
,dst
,src_dir_fd
,dst_dir_fd
.Zmienione w wersji 3.3: Добавлены параметры src_dir_fd и dst_dir_fd.
Zmienione w wersji 3.6: Приймає path-like object для src і dst.
- os.renames(old, new)¶
Функція рекурсивного перейменування каталогу або файлу. Працює як
rename()
, за винятком того, що спочатку намагаються створити будь-які проміжні каталоги, необхідні для того, щоб зробити нове ім’я шляху правильним. Після перейменування каталоги, які відповідають крайнім правим сегментам шляху старої назви, будуть видалені за допомогоюremovedirs()
.Informacja
Ця функція може вийти з ладу з новою структурою каталогів, якщо у вас немає дозволів, необхідних для видалення кінцевого каталогу або файлу.
Викликає подію аудиту
os.rename
з аргументамиsrc
,dst
,src_dir_fd
,dst_dir_fd
.Zmienione w wersji 3.6: Приймає path-like object для 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 для надання шляхів відносно дескрипторів каталогу.
Викликає подію аудиту
os.rename
з аргументамиsrc
,dst
,src_dir_fd
,dst_dir_fd
.Dodane w wersji 3.3.
Zmienione w wersji 3.6: Приймає path-like object для src і dst.
- os.rmdir(path, *, dir_fd=None)¶
Удалить (удалить) каталог путь. Если каталог не существует или не пуст,
FileNotFoundError
илиOSError
соответственно повышается. Чтобы удалить целые деревья каталогов,shutil.rmtree()
можно использовать.Ця функція може підтримувати шляхи відносно дескрипторів каталогу.
Викликає подію аудиту
os.rmdir
з аргументамиpath
,dir_fd
.Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.scandir(path='.')¶
Повертає ітератор об’єктів
os.DirEntry
, що відповідають записам у каталозі, визначеному path. Записи надаються в довільному порядку, і спеціальні записи'.'
і'..'
не включені. Якщо файл видалено з каталогу або додано до нього після створення ітератора, чи буде включений запис для цього файлу, не визначено.Використання
scandir()
замістьlistdir()
може значно підвищити продуктивність коду, який також потребує інформації про тип файлу чи атрибути файлу, оскільки об’єктиos.DirEntry
надають цю інформацію, якщо операційна система надає під час сканування каталогу. Усі методиos.DirEntry
можуть виконувати системний виклик, алеis_dir()
іis_file()
зазвичай вимагають лише системного виклику для символічних посилань;os.DirEntry.stat()
завжди вимагає системного виклику в Unix, але вимагає лише один для символічних посилань у Windows.path може бути path-like object. Якщо path має тип
bytes
(прямо чи опосередковано через інтерфейсPathLike
), типname
і Атрибутиpath
кожногоos.DirEntry
будутьbytes
; за всіх інших обставин вони будуть типуstr
.Ця функція також може підтримувати зазначення файлового дескриптора; дескриптор файлу повинен посилатися на каталог.
Викликає подію аудиту
os.scandir
з аргументомpath
.Ітератор
scandir()
підтримує протокол context manager і має такий метод:- scandir.close()¶
Закрийте ітератор і звільніть отримані ресурси.
Це викликається автоматично, коли ітератор вичерпано або зібрано сміття, або коли під час ітерації трапляється помилка. Однак бажано викликати його явно або використовувати оператор
with
.Dodane w wersji 3.6.
У наступному прикладі показано просте використання
scandir()
для відображення всіх файлів (за винятком каталогів) у заданому шляху, які не починаються з'.'
. Виклик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)
Informacja
В системах на базе Unix
скандир()
использует системный opendir() и readdir() функции. В Windows он использует Win32 FindFirstFileW и НайтиСледующийФайлW функции.Dodane w wersji 3.5.
Zmienione w wersji 3.6: Добавлена поддержка протокола context Manager и
close()
метод. Еслискандир()
итератор не исчерпан и не закрыт явноResourceWarning
будет создан в его деструкторе.Fungsi yang menerima sebuah path-like object.
Zmienione w wersji 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
і обробити відповідно.Для безпосереднього використання як path-like object,
os.DirEntry
реалізує інтерфейсPathLike
.Атрибути та методи екземпляра
os.DirEntry
такі:- name¶
Базове ім’я файлу запису відносно аргументу path
scandir()
.Атрибут
name
будеbytes
, якщо аргументscandir()
path має типbytes
таstr
інакше. Використовуйтеfsdecode()
для декодування байтових імен файлів.
- path¶
Повний шлях до запису: еквівалент
os.path.join(scandir_path, entry.name)
, де scandir_path є аргументомscandir()
path. Шлях є абсолютним, лише якщо аргумент pathscandir()
був абсолютним. Якщо аргументscandir()
path був дескриптором файлу, атрибутpath
буде таким самим, як атрибутname
.Атрибут
path
матиме значенняbytes
, якщо аргумент pathscandir()
має типbytes
таstr
інакше. Використовуйтеfsdecode()
для декодування байтових імен файлів.
- inode()¶
Повертає номер inode запису.
Результат кешується в об’єкті
os.DirEntry
. Використовуйтеos.stat(entry.path, follow_symlinks=False).st_ino
, щоб отримати актуальну інформацію.İlk, önbelleğe alınmamış çağrıda, Windows’ta bir sistem çağrısı gerekir, ancak Unix’te gerekli değildir.
- is_dir(*, follow_symlinks=True)¶
Повертає
True
, якщо цей запис є каталогом або символічним посиланням, що вказує на каталог; повертаєFalse
, якщо запис є або вказує на будь-який інший тип файлу, або якщо він більше не існує.Якщо follow_symlinks має значення
False
, повертаєTrue
, лише якщо цей запис є каталогом (без наступних символічних посилань); повертаєFalse
, якщо запис є файлом будь-якого іншого типу або якщо він більше не існує.Результат кешується в об’єкті
os.DirEntry
з окремим кешем для follow_symlinksTrue
іFalse
. Викличтеos.stat()
разом ізstat.S_ISDIR()
, щоб отримати актуальну інформацію.Під час першого некешованого виклику в більшості випадків системний виклик не потрібен. Зокрема, для несимволічних посилань ні Windows, ні Unix не потребують системного виклику, за винятком певних файлових систем Unix, таких як мережеві файлові системи, які повертають
dirent.d_type == DT_UNKNOWN
. Якщо запис є символічним посиланням, для переходу за символічним посиланням знадобиться системний виклик, якщо follow_symlinks не має значенняFalse
.Цей метод може викликати
OSError
, наприкладPermissionError
, алеFileNotFoundError
перехоплюється і не викликається.
- is_file(*, follow_symlinks=True)¶
Повертає
True
, якщо цей запис є файлом або символічним посиланням, що вказує на файл; повертаєFalse
, якщо запис є або вказує на каталог або інший нефайловий запис, або якщо він більше не існує.Якщо follow_symlinks має значення
False
, повертаєTrue
, лише якщо цей запис є файлом (без наступних символічних посилань); повертає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
перехоплюється і не викликається.
- is_junction()¶
Возвращаться
Правда
если эта запись является перекрестком (даже если она сломана); возвращатьсяЛожь
если запись указывает на обычный каталог, файл любого типа, символическую ссылку или он больше не существует.Результат кэшируется на
os.DirEntry
объект. Вызовos.path.isjunction()
для получения актуальной информации.Dodane w wersji 3.12.
- 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
. В частности,имя
атрибут имеет то же значение, что и атрибутis_dir()
,is_file()
,is_symlink()
,is_junction()
, иstat()
методы.Dodane w wersji 3.5.
Zmienione w wersji 3.6: Додано підтримку інтерфейсу
PathLike
. Додано підтримку шляхівbytes
у Windows.Zmienione w wersji 3.12: The
st_ctime
Атрибут результата статистики устарел в Windows. Время создания файла правильно доступно какst_birthtime
, и в будущемst_ctime
может быть изменено, чтобы возвращать ноль или время изменения метаданных, если оно доступно.
- os.stat(path, *, dir_fd=None, follow_symlinks=True)¶
Отримати статус файлу або дескриптора файлу. Виконайте еквівалент системного виклику
stat()
на вказаному шляху. шлях можна вказати як рядок або байти — прямо чи опосередковано через інтерфейсPathLike
— або як дескриптор відкритого файлу. Повертає об’єктstat_result
.Ця функція зазвичай слідує за символічними посиланнями; щоб стати символічним посиланням, додайте аргумент
follow_symlinks=False
або використовуйтеlstat()
.Ця функція може підтримувати зазначення файлового дескриптора і неперехід за символічними посиланнями.
У Windows передача
follow_symlinks=False
вимкне відстеження всіх сурогатних точок повторного аналізу імен, включаючи символічні посилання та з’єднання каталогів. Інші типи точок повторного аналізу, які не схожі на посилання або за якими операційна система не може слідувати, будуть відкриті безпосередньо. Під час переходу за ланцюгом із кількох посилань це може призвести до повернення оригінального посилання замість незв’язку, яке перешкоджало повному обходу. Щоб отримати статистичні результати для кінцевого шляху в цьому випадку, скористайтесяos.path.realpath()
функцією, щоб вирішити назву шляху, наскільки це можливо, і викликайтеlstat()
для результату. Це не стосується висячих символічних посилань або точок з’єднання, які призведуть до звичайних винятків.Przykład:
>>> 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
Zmienione w wersji 3.3: Добавлены параметры dir_fd и follow_symlinks, указывающие дескриптор файла вместо пути.
Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.8: У Windows усі точки повторного аналізу, які може вирішити операційна система, тепер відстежуються, а передача
follow_symlinks=False
вимикає відстеження всіх сурогатних точок повторного аналізу імен. Якщо операційна система досягає точки повторного аналізу, за якою вона не може слідувати, stat тепер повертає інформацію для початкового шляху, як якщо б було вказаноfollow_symlinks=False
замість того, щоб викликати помилку.
- class os.stat_result¶
Объект, атрибуты которого примерно соответствуют членам
stat
структура. Используется для получения результатаos.stat()
,os.fstat()
иos.lstat()
.Öznitelikler:
- st_mode¶
Öznitelikler:
- st_ino¶
Залежить від платформи, але якщо не нуль, унікально ідентифікує файл для заданого значення
st_dev
. Зазвичай:Unix’teki düğüm numarası,
індекс файлу у Windows
- st_dev¶
Ідентифікатор пристрою, на якому знаходиться цей файл.
- st_nlink¶
Кількість жорстких посилань.
- st_uid¶
Dosya sahibinin kullanıcı tanımlayıcısı.
- st_gid¶
Груповий ідентифікатор власника файлу.
- st_size¶
Розмір файлу в байтах, якщо це звичайний файл або символьне посилання. Розмір символічного посилання - це довжина шляху, який воно містить, без кінцевого нульового байта.
Мітки часу:
- st_atime¶
Час останнього доступу, виражений у секундах.
- st_mtime¶
Час останньої зміни вмісту, виражений у секундах.
- st_ctime¶
Время последнего изменения метаданных, выраженное в секундах.
Zmienione w wersji 3.12:
st_ctime
устарел в Windows. Использоватьst_birthtime
для времени создания файла. В будущем,st_ctime
будет содержать время последнего изменения метаданных, как и для других платформ.
- st_atime_ns¶
Час останнього доступу, виражений у наносекундах як ціле число.
Dodane w wersji 3.3.
- st_mtime_ns¶
Час останньої зміни вмісту, виражений у наносекундах як ціле число.
Dodane w wersji 3.3.
- st_ctime_ns¶
Время последнего изменения метаданных, выраженное в наносекундах как целое число.
Dodane w wersji 3.3.
Zmienione w wersji 3.12:
st_ctime_ns
устарел в Windows. Использоватьst_birthtime_ns
для времени создания файла. В будущем,st_ctime
будет содержать время последнего изменения метаданных, как и для других платформ.
- st_birthtime¶
Время создания файла выражается в секундах. Этот атрибут не всегда доступен и может повысить
AttributeError
.Zmienione w wersji 3.12:
st_birthtime
теперь доступен в Windows.
- st_birthtime_ns¶
Время создания файла выражается в наносекундах целым числом. Этот атрибут не всегда доступен и может повысить
AttributeError
.Dodane w wersji 3.12.
Informacja
Точный смысл и разрешение
st_atime
,st_mtime
,st_ctime
иst_birthtime
атрибуты зависят от операционной системы и файловой системы. Например, в системах Windows, использующих файловые системы FAT32,st_mtime
имеет 2-секундное разрешение иst_atime
имеет только 1-дневное разрешение. Подробности смотрите в документации к вашей операционной системе.Аналогично, хотя
st_atime_ns
,st_mtime_ns
,st_ctime_ns
иst_birthtime_ns
всегда выражаются в наносекундах, многие системы не обеспечивают наносекундную точность. В системах, которые обеспечивают наносекундную точность, объект с плавающей запятой, используемый для храненияst_atime
,st_mtime
,st_ctime
иst_birthtime
не может сохранить все это и поэтому будет немного неточным. Если вам нужны точные временные метки, вы всегда должны использоватьst_atime_ns
,st_mtime_ns
,st_ctime_ns
иst_birthtime_ns
.Bazı Unix sistemlerinde (Linux gibi), aşağıdaki öznitelikler de mevcuttur:
- st_blocks¶
Кількість 512-байтних блоків, виділених для файлу. Це може бути менше, ніж
st_size
/512, якщо файл має отвори.
- st_blksize¶
„Бажаний” розмір блоку для ефективного введення/виведення файлової системи. Запис у файл меншими фрагментами може спричинити неефективне читання-змінення-перезапис.
- st_rdev¶
Тип пристрою, якщо пристрій inode.
- st_flags¶
Визначені користувачем позначки для файлу.
Diğer Unix sistemlerinde (FreeBSD gibi), aşağıdaki öznitelikler mevcuttur (ancak yalnızca kök bunları kullanmaya çalışırsa doldurulabilir):
- st_gen¶
Номер покоління файлу.
У Solaris і похідних також можуть бути доступні такі атрибути:
- st_fstype¶
Рядок, який однозначно визначає тип файлової системи, яка містить файл.
У системах macOS також можуть бути доступні такі атрибути:
- st_rsize¶
Реальний розмір файлу.
- st_creator¶
Творець файлу.
- st_type¶
Тип файлу.
У системах Windows також доступні такі атрибути:
- st_file_attributes¶
Атрибуты файла Windows:
dwFileAttributes
членBY_HANDLE_FILE_INFORMATION
структура, возвращаемаяGetFileInformationByHandle()
. См.FILE_ATTRIBUTE_* <stat.FILE_ATTRIBUTE_ARCHIVE>
константы в :mode:`состояние` модуль.Dodane w wersji 3.5.
- st_reparse_tag¶
Когда
st_file_attributes
имеетFILE_ATTRIBUTE_REPARSE_POINT
установлено, это поле содержит тег, определяющий тип точки повторной обработки. См.IO_REPARSE_TAG_*.
константы в :mode:`состояние` модуль.
Стандартный модуль :mode:`состояние` определяет функции и константы, которые полезны для извлечения информации из
stat
структура. (В Windows некоторые элементы заполнены фиктивными значениями.)Для обратной совместимости,
stat_result
экземпляр также доступен в виде кортежа, состоящего как минимум из 10 целых чисел, дающих наиболее важные (и переносимые) членыstat
структура, в порядкеst_mode
,st_ino
,st_dev
,st_nlink
,st_uid
,st_gid
,st_size
,st_atime
,st_mtime
,st_ctime
. В некоторых реализациях в конце могут быть добавлены дополнительные элементы. Для совместимости со старыми версиями Python откройтеstat_result
поскольку кортеж всегда возвращает целые числа.Zmienione w wersji 3.5: Тепер Windows повертає індекс файлу як
st_ino
, якщо він доступний.Zmienione w wersji 3.7: Додано член
st_fstype
до Solaris/derivatives.Zmienione w wersji 3.8: Додано член
st_reparse_tag
у Windows.Zmienione w wersji 3.8: У Windows член
st_mode
тепер ідентифікує спеціальні файли якS_IFCHR
,S_IFIFO
абоS_IFBLK
відповідно.Zmienione w wersji 3.12: В Windows,
st_ctime
устарел. В конечном итоге он будет содержать время последнего изменения метаданных для согласованности с другими платформами, но на данный момент все еще содержит время создания. Использоватьst_birthtime
за время создания.В Windows,
st_ino
теперь может достигать 128 бит, в зависимости от файловой системы. Раньше его длина не превышала 64 бит, а более крупные идентификаторы файлов упаковывались произвольно.В Windows,
st_rdev
больше не возвращает значение. Раньше он содержал то же самое, что иst_dev
, что было неверно.Добавлен
st_birthtime
участник в Windows.
- os.statvfs(path)¶
Выполните
statvfs()
системный вызов по заданному пути. Возвращаемое значение — это объект, атрибуты которого описывают файловую систему по заданному пути и соответствуют членам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
(запис у файл/каталог/символне посилання),ST_APPEND
(файл лише для додавання),ST_IMMUTABLE
(незмінний файл),ST_NOATIME
(не оновлювати час доступу),ST_NODIRATIME
(не оновлювати час доступу до каталогу),ST_RELATIME
(оновлювати atime відносно mtime/ctime).Ця функція може підтримувати зазначення файлового дескриптора.
Dostępność: Unix.
Zmienione w wersji 3.2: Додано константи
ST_RDONLY
іST_NOSUID
.Zmienione w wersji 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу.
Zmienione w wersji 3.4:
ST_NODEV
,ST_NOEXEC
,ST_SYNCHRONOUS
,ST_MANDLOCK
,ST_WRITE
,ST_APPEND
,ST_IMMUTABLE
, Додано константиST_NOATIME
,ST_NODIRATIME
іST_RELATIME
.Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 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 в os.supports_dir_fd
Наразі параметри dir_fd працюють лише на платформах Unix; жоден з них не працює в Windows.
Dodane w wersji 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 в os.supports_efficient_ids
Наразі effective_ids підтримується лише на платформах Unix; це не працює в Windows.
Dodane w wersji 3.3.
- os.supports_fd¶
Об’єкт
set
, що вказує, які функції в модуліos
дозволяють вказувати свій параметр path як дескриптор відкритого файлу на локальній платформі. Різні платформи надають різні функції, а основні функції, які Python використовує для прийняття відкритих файлових дескрипторів як шлях аргументів, доступні не на всіх платформах, які підтримує Python.Щоб визначити, чи дозволяє певна функція вказувати дескриптор відкритого файлу для свого параметра path, використовуйте оператор
in
наsupports_fd
. Як приклад, цей вираз має значенняTrue
, якщоos.chdir()
приймає дескриптори відкритих файлів для path на вашій локальній платформі:os.chdir в os.supports_fd
Dodane w wersji 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 в os.supports_follow_symlinks
Dodane w wersji 3.3.
- os.symlink(src, dst, target_is_directory=False, *, dir_fd=None)¶
Створіть символічне посилання на src під назвою dst.
У Windows символічне посилання представляє або файл, або каталог і не перетворюється на ціль динамічно. Якщо ціль присутня, буде створено відповідний тип символічного посилання. В іншому випадку символічне посилання буде створено як каталог, якщо target_is_directory має значення
True
, або символічне посилання на файл (за замовчуванням), інакше. На платформах, відмінних від Windows, target_is_directory ігнорується.Ця функція може підтримувати шляхи відносно дескрипторів каталогу.
Informacja
У новіших версіях Windows 10 непривілейовані облікові записи можуть створювати символічні посилання, якщо ввімкнено режим розробника. Якщо режим розробника недоступний/увімкнено, потрібен привілей SeCreateSymbolicLinkPrivilege, або процес потрібно запускати від імені адміністратора.
OSError
виникає, коли функцію викликає непривілейований користувач.Викликає подію аудиту
os.symlink
з аргументамиsrc
,dst
,dir_fd
.Dostępność: Unix, Windows.
Эта функция ограничена WASI, см. Платформы веб-сборки для получения дополнительной информации.
Zmienione w wersji 3.2: Windows 6.0 (Vista) sembolik bağlantıları için destek eklendi.
Zmienione w wersji 3.3: Добавлен параметр dir_fd, и теперь разрешен target_is_directory на платформах, отличных от Windows.
Zmienione w wersji 3.6: Приймає path-like object для src і dst.
Zmienione w wersji 3.8: Додано підтримку непідвищених символічних посилань у Windows із режимом розробника.
- os.sync()¶
Her şeyi diske yazmaya zorla.
Dostępność: Unix.
Dodane w wersji 3.3.
- os.truncate(path, length)¶
Обріжте файл, що відповідає шляху, щоб його розмір не перевищував length байтів.
Ця функція може підтримувати зазначення файлового дескриптора.
Викликає подію аудиту
os.truncate
з аргументамиpath
,length
.Dostępność: Unix, Windows.
Dodane w wersji 3.3.
Zmienione w wersji 3.5: Windows için destek eklendi
Zmienione w wersji 3.6: Accepts a path-like object.
- os.unlink(path, *, dir_fd=None)¶
Видалити (видалити) шлях до файлу. Ця функція семантично ідентична
remove()
; ім’яunlink
є його традиційною назвою Unix. Будь ласка, перегляньте документацію дляremove()
для отримання додаткової інформації.Викликає подію аудиту
os.remove
з аргументамиpath
,dir_fd
.Zmienione w wersji 3.3: Додано параметр dir_fd.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.utime(path, times=None, *, [ns, ]dir_fd=None, follow_symlinks=True)¶
Встановіть час доступу та час зміни файлу, указаного шляхом.
utime()
приймає два необов’язкові параметри, times і ns. Вони вказують час, встановлений на path і використовуються таким чином:Якщо вказано 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()
объект результата с параметром ns дляотлично()
.Ця функція може підтримувати зазначення дескриптора файлу, шляхи відносно дескрипторів каталогу та неперехід за символічними посиланнями.
Викликає подію аудиту
os.utime
з аргументамиpath
,times
,ns
,dir_fd
.Zmienione w wersji 3.3: Додано підтримку для вказівки шляху як дескриптора відкритого файлу та параметрів dir_fd, follow_symlinks і ns.
Zmienione w wersji 3.6: Accepts a path-like object.
- os.walk(top, topdown=True, onerror=None, followlinks=False)¶
Згенеруйте імена файлів у дереві каталогів, проходячи по дереву зверху вниз або знизу вгору. Для кожного каталогу в дереві, що знаходиться в каталозі top (включно з самим top), він дає 3-кортеж
(dirpath, dirnames, filenames)
.dirpath — строка, путь к каталогу. dirnames — это список имен подкаталогов в dirpath (включая символические ссылки на каталоги и исключая
'.'
и'..'
). filenames — это список имен файлов, не являющихся каталогами, в dirpath. Обратите внимание, что имена в списках не содержат компонентов пути. Чтобы получить полный путь (начинающийся с top) к файлу или каталогу в dirpath, выполнитеos.path.join(каталог, имя)
. Сортировка списков зависит от файловой системы. Если файл удаляется из каталога 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
, щоб відвідувати каталоги, на які вказують символічні посилання, у системах, які їх підтримують.Informacja
Майте на увазі, що встановлення followlinks значення
True
може призвести до нескінченної рекурсії, якщо посилання вказує на батьківський каталог самого себе.walk()
не відстежує каталоги, які він уже відвідав.Informacja
Якщо ви передаєте відносний шлях, не змінюйте поточний робочий каталог між відновленням
walk()
.walk()
ніколи не змінює поточний каталог і припускає, що його виклик теж не змінює.Este exemplo exibe o número total de bytes dos arquivos não-diretório em cada diretório no diretório inicial, exceto que ele não olha em nenhum subdiretório chamado
__pycache__
:import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/xml'): print(root, "consumes", end=" ") print(sum(getsize(join(root, name)) for name in files), end=" ") print("bytes in", len(files), "non-directory files") if '__pycache__' in dirs: dirs.remove('__pycache__') # don't visit __pycache__ directories
У наступному прикладі (проста реалізація
shutil.rmtree()
) важливий перехід по дереву знизу вгору,rmdir()
не дозволяє видаляти каталог, поки він не стане порожнім:# Delete everything reachable from the directory named in "top", # assuming there are no symbolic links. # CAUTION: This is dangerous! For example, if top == '/', it # could delete all your disk files. 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)) os.rmdir(top)
Викликає подію аудиту
os.walk
з аргументамиtop
,topdown
,onerror
,followlinks
.Zmienione w wersji 3.5: Ця функція тепер викликає
os.scandir()
замістьos.listdir()
, що робить її швидшою завдяки зменшенню кількості викликів доos.stat()
.Zmienione w wersji 3.6: Accepts a path-like object.
- os.fwalk(top='.', topdown=True, onerror=None, *, follow_symlinks=False, dir_fd=None)¶
Це веде себе так само, як
walk()
, за винятком того, що дає 4-кортеж(dirpath, dirnames, filenames, dirfd)
, і підтримуєdir_fd
.dirpath, dirnames і filenaname ідентичні виводу
walk()
, а dirfd є дескриптором файлу, який посилається на каталог dirpath.Ця функція завжди підтримує шляхи відносно дескрипторів каталогу і не наступні символічні посилання. Проте зауважте, що, на відміну від інших функцій, значенням за замовчуванням
fwalk()
для follow_symlinks єFalse
.Informacja
Оскільки
fwalk()
дає дескриптори файлів, вони дійсні лише до наступного кроку ітерації, тому вам слід дублювати їх (наприклад, за допомогоюdup()
), якщо ви хочете зберегти їх довше.Este exemplo exibe o número total de bytes dos arquivos não-diretório em cada diretório no diretório inicial, exceto que ele não olha em nenhum subdiretório chamado
__pycache__
:import os for root, dirs, files, rootfd in os.fwalk('python/Lib/xml'): 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 '__pycache__' in dirs: dirs.remove('__pycache__') # don't visit __pycache__ directories
У наступному прикладі перехід по дереву знизу вгору важливий:
rmdir()
не дозволяє видаляти каталог, поки каталог не буде порожнім:# Delete everything reachable from the directory named in "top", # assuming there are no symbolic links. # CAUTION: This is dangerous! For example, if top == '/', it # could delete all your disk files. 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)
Викликає подію аудиту
os.fwalk
з аргументамиtop
,topdown
,onerror
,follow_symlinks
,dir_fd
.Dostępność: Unix.
Dodane w wersji 3.3.
Zmienione w wersji 3.6: Accepts a path-like object.
Zmienione w wersji 3.7: Додано підтримку шляхів
bytes
.
- os.memfd_create(name[, flags=os.MFD_CLOEXEC])¶
Створіть анонімний файл і поверніть дескриптор файлу, який посилається на нього. flags має бути однією з констант
os.MFD_*
, доступних у системі (або їх побітовою комбінацією АБО). За замовчуванням новий файловий дескриптор є non-inheritable.Ім’я, указане в name, використовується як ім’я файлу та відображатиметься як ціль відповідного символічного посилання в каталозі
/proc/self/fd/
. Ім’я, що відображається, завжди має префіксmemfd:
і служить лише для цілей налагодження. Імена не впливають на поведінку файлового дескриптора, тому кілька файлів можуть мати однакові назви без будь-яких побічних ефектів.Dostępność: Linux >= 3.17 with glibc >= 2.27.
Dodane w wersji 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()
.Dostępność: Linux >= 3.17 with glibc >= 2.27
The
MFD_HUGE*
флаги доступны только начиная с Linux 4.14.Dodane w wersji 3.8.
- os.eventfd(initval[, flags=os.EFD_CLOEXEC])¶
Створити та повернути дескриптор файлу подій. Дескриптори файлів підтримують raw
read()
іwrite()
з розміром буфера 8,select()
,poll()
тощо. Додаткову інформацію дивіться на сторінці довідки eventfd(2). За замовчуванням новий файловий дескриптор є non-inheritable.initval — начальное значение счетчика событий. Начальное значение должно быть 32-битным целым числом без знака. Обратите внимание, что начальное значение ограничено 32-битным целым числом без знака, хотя счетчик событий представляет собой 64-битное целое число без знака с максимальным значением 2. 64 -2.
прапори можуть бути створені з
EFD_CLOEXEC
,EFD_NONBLOCK
іEFD_SEMAPHORE
.Якщо вказано
EFD_SEMAPHORE
і лічильник подій ненульовий,eventfd_read()
повертає 1 і зменшує лічильник на одиницю.Якщо
EFD_SEMAPHORE
не вказано, а лічильник подій ненульовий,eventfd_read()
повертає поточне значення лічильника подій і скидає лічильник до нуля.Якщо лічильник подій дорівнює нулю і
EFD_NONBLOCK
не вказано,eventfd_read()
блокує.eventfd_write()
збільшує лічильник подій. Блокує запис, якщо операція запису збільшить лічильник до значення, більшого за 264-2.Przykład:
import os # semaphore with start value '1' fd = os.eventfd(1, os.EFD_SEMAPHORE | os.EFC_CLOEXEC) try: # acquire semaphore v = os.eventfd_read(fd) try: do_work() finally: # release semaphore os.eventfd_write(fd, v) finally: os.close(fd)
Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.10.
- os.eventfd_read(fd)¶
Зчитування значення з дескриптора файлу
eventfd()
і повернення 64-бітного беззнакового int. Функція не перевіряє, що fd єeventfd()
.Dostępność: Linux >= 2.6.27
Dodane w wersji 3.10.
- os.eventfd_write(fd, value)¶
Додайте значення до дескриптора файлу
eventfd()
. значення має бути 64-бітним беззнаковим цілим. Функція не перевіряє, що fd єeventfd()
.Dostępność: Linux >= 2.6.27
Dodane w wersji 3.10.
- os.EFD_CLOEXEC¶
Установіть прапорець close-on-exec для нового файлового дескриптора
eventfd()
.Dostępność: Linux >= 2.6.27
Dodane w wersji 3.10.
- os.EFD_NONBLOCK¶
Установіть позначку статусу
O_NONBLOCK
для нового файлового дескриптораeventfd()
.Dostępność: Linux >= 2.6.27
Dodane w wersji 3.10.
- os.EFD_SEMAPHORE¶
Обеспечить семантику, подобную семафору, для чтения из
eventfd()
дескриптор файла. При чтении внутренний счетчик уменьшается на единицу.Dostępność: Linux >= 2.6.30
Dodane w wersji 3.10.
Дескрипторы файлов таймеров¶
Dodane w wersji 3.13.
Эти функции обеспечивают поддержку API дескриптора файла таймера Linux. Естественно, все они доступны только в Linux.
- os.timerfd_create(clockid, /, *, flags=0)¶
Создайте и верните дескриптор файла таймера (timerfd).
Дескриптор файла, возвращаемый
timerfd_create()
поддерживает:Дескриптор файла
читать()
метод можно вызвать с размером буфера 8. Если таймер уже истек один или несколько раз,читать()
возвращает количество сроков действия с порядком байтов хоста, которое можно преобразовать в :класс:`int` кint.from_bytes(x, byteorder=sys.byteorder)
.select()
иpoll()
может использоваться для ожидания, пока истечет время таймера и дескриптор файла станет доступен для чтения.clockid must be a valid clock ID, as defined in the
time
module:time.CLOCK_BOOTTIME
(Since Linux 3.15 for timerfd_create)
Если * clockid*
time.CLOCK_REALTIME
используются настраиваемые общесистемные часы реального времени. Если системные часы изменены, необходимо обновить настройки таймера. Чтобы отменить таймер при изменении системных часов, см.TFD_TIMER_CANCEL_ON_SET
.Если * clockid*
time.CLOCK_MONOTONIC
используются ненастраиваемые монотонно возрастающие часы. Даже если системные часы будут изменены, настройка таймера не изменится.Если * clockid*
time.CLOCK_BOOTTIME
, то же, чтоtime.CLOCK_MONOTONIC
за исключением случаев, когда система приостановлена.Поведение файлового дескриптора можно изменить, указав значение flags. Можно использовать любую из следующих переменных, объединенную с помощью побитового ИЛИ (оператор
|
оператор):Если
TFD_NONBLOCK
не установлен как флаг,читать()
блокируется до истечения таймера. Если он установлен как флаг,читать()
не блокирует, но если с момента последнего вызова чтения не истек срок действия,читать()
поднимаетOSError
сошибка
установлено наerrno.EAGAIN
.TFD_CLOEXEC
всегда устанавливается Python автоматически.Дескриптор файла должен быть закрыт с помощью
os.close()
когда он больше не нужен, иначе дескриптор файла будет утерян.Zobacz także
The timerfd_create(2) справочная страница.
Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.timerfd_settime(fd, /, *, flags=flags, initial=0.0, interval=0.0)¶
Изменить внутренний таймер файлового дескриптора таймера. Эта функция использует тот же интервальный таймер, что и
timerfd_settime_ns()
.fd должен быть допустимым дескриптором файла таймера.
Поведение таймера можно изменить, указав значение flags. Можно использовать любую из следующих переменных, объединенную с помощью побитового ИЛИ (оператор
|
оператор):Таймер отключается установкой initial в ноль (
0
). Если initial равен или больше нуля, таймер включен. Если initial меньше нуля, возникаетOSError
исключение сошибка
установлен наerrno.EINVAL
По умолчанию таймер сработает по истечении начальных секунд. (Если initial равно нулю, таймер сработает немедленно.)
Однако, если
TFD_TIMER_ABSTIME
установлен флаг, таймер сработает, когда часы таймера (установленные * clockid* вtimerfd_create()
) достигает начальных секунд.Интервал таймера задается параметром interval
float
. Если interval равен нулю, таймер срабатывает только один раз, по первому истечении срока действия. Если interval больше нуля, таймер срабатывает каждый раз, когда interval секунд прошло с момента предыдущего истечения срока действия. Если интервал меньше нуля, он поднимаетOSError
сошибка
установлен наerrno.EINVAL
Если
TFD_TIMER_CANCEL_ON_SET
флаг установлен вместе сTFD_TIMER_ABSTIME
и часы для этого таймераtime.CLOCK_REALTIME
, таймер помечается как отменяемый, если часы реального времени изменяются прерывисто. Чтение дескриптора прерывается с ошибкой ECANCELED.Linux управляет системными часами как UTC. Переход на летнее время осуществляется только путем изменения смещения времени и не приводит к прерывистому изменению системных часов.
Прерывистое изменение системных часов может быть вызвано следующими событиями:
settimeofday
clock_settime
установите системную дату и время с помощью
дата
команда
Вернуть кортеж из двух элементов (
next_expiration
,интервал
) из предыдущего состояния таймера до выполнения этой функции.Zobacz także
timerfd_create(2) , timerfd_settime(2) , settimeofday(2) , :manpage:` clock_settime(2)` , и дата(1) .
Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.timerfd_settime_ns(fd, /, *, flags=0, initial=0, interval=0)¶
Похоже на:
timerfd_settime()
, но используйте время в наносекундах. Эта функция использует тот же интервальный таймер, что иtimerfd_settime()
.Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.timerfd_gettime(fd, /)¶
Вернуть кортеж из двух элементов с плавающей запятой (
next_expiration
,интервал
).next_expiration
обозначает относительное время до следующего срабатывания таймера, независимо от того,TFD_TIMER_ABSTIME
флаг установлен.интервал
обозначает интервал таймера. Если ноль, таймер сработает только один раз, послеnext_expiration
секунды прошли.Zobacz także
Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.timerfd_gettime_ns(fd, /)¶
Похоже на:
timerfd_gettime()
, но возвращает время в наносекундах.Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.TFD_NONBLOCK¶
Флаг для
timerfd_create()
функция, которая устанавливаетO_NONBLOCK
флаг состояния для нового дескриптора файла таймера. ЕслиTFD_NONBLOCK
не установлен как флаг,читать()
блоки.Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.TFD_CLOEXEC¶
Флаг для
timerfd_create()
функция, еслиTFD_CLOEXEC
установлен как флаг, установите флаг закрытия при выполнении для нового дескриптора файла.Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.TFD_TIMER_ABSTIME¶
Флаг для
timerfd_settime()
иtimerfd_settime_ns()
функции. Если этот флаг установлен, initial интерпретируется как абсолютное значение на часах таймера (в секундах UTC или наносекундах с эпохи Unix).Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
- os.TFD_TIMER_CANCEL_ON_SET¶
Флаг для
timerfd_settime()
иtimerfd_settime_ns()
функционирует вместе сTFD_TIMER_ABSTIME
. Таймер отменяется, когда время основных часов меняется прерывисто.Dostępność: Linux >= 2.6.27 with glibc >= 2.8
Dodane w wersji 3.13.
Linux genişletilmiş öznitelikleri¶
Dodane w wersji 3.3.
Bu fonksiyonların hepsi yalnız Linux’ta mevcuttur.
- os.getxattr(path, attribute, *, follow_symlinks=True)¶
Повертає значення розширеного атрибута файлової системи attribute для path. attribute може бути байтом або str (прямо чи опосередковано через інтерфейс
PathLike
). Якщо це str, воно закодовано з кодуванням файлової системи.Ця функція може підтримувати зазначення файлового дескриптора і неперехід за символічними посиланнями.
Викликає подію аудиту
os.getxattr
з аргументамиpath
,attribute
.Zmienione w wersji 3.6: Приймає path-like object для path і attribute.
- os.listxattr(path=None, *, follow_symlinks=True)¶
Повертає список розширених атрибутів файлової системи за шляхом. Атрибути в списку представлені як рядки, декодовані за допомогою кодування файлової системи. Якщо path має значення
None
,listxattr()
перевірить поточний каталог.Ця функція може підтримувати зазначення файлового дескриптора і неперехід за символічними посиланнями.
Викликає подію аудиту
os.listxattr
з аргументомpath
.Zmienione w wersji 3.6: Accepts a path-like object.
- os.removexattr(path, attribute, *, follow_symlinks=True)¶
Видаляє розширений атрибут файлової системи attribute із path. attribute має бути байтом або str (прямо чи опосередковано через інтерфейс
PathLike
). Якщо це рядок, він кодується за допомогою filesystem encoding and error handler.Ця функція може підтримувати зазначення файлового дескриптора і неперехід за символічними посиланнями.
Викликає подію аудиту
os.removexattr
з аргументамиpath
,attribute
.Zmienione w wersji 3.6: Приймає path-like object для path і attribute.
- os.setxattr(path, attribute, value, flags=0, *, follow_symlinks=True)¶
Установіть attribute розширеного атрибута файлової системи на path у value. атрибут має бути байтом або рядком без вбудованих NUL (прямо чи опосередковано через інтерфейс
PathLike
). Якщо це str, він закодований за допомогою filesystem encoding and error handler. прапорцями можуть бутиXATTR_REPLACE
абоXATTR_CREATE
. Якщо заданоXATTR_REPLACE
, а атрибут не існує, буде створеноENODATA
. Якщо заданоXATTR_CREATE
і атрибут уже існує, атрибут не буде створено, і буде викликаноEEXISTS
.Ця функція може підтримувати зазначення файлового дескриптора і неперехід за символічними посиланнями.
Informacja
Помилка у версіях ядра Linux до 2.6.39 спричинила ігнорування аргументу flags у деяких файлових системах.
Викликає подію аудиту
os.setxattr
з аргументамиpath
,attribute
,value
,flags
.Zmienione w wersji 3.6: Приймає path-like object для path і attribute.
- os.XATTR_SIZE_MAX¶
Максимальний розмір значення розширеного атрибута. На даний момент це 64 КіБ на Linux.
- os.XATTR_CREATE¶
Це можливе значення для аргументу flags у
setxattr()
. Це вказує, що операція повинна створити атрибут.
- os.XATTR_REPLACE¶
Це можливе значення для аргументу flags у
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, щоб дізнатися більше про те, як завантажуються DLL.
Викликає подію аудиту
os.add_dll_directory
з аргументомpath
.Dostępność: Windows.
Dodane w wersji 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», пожалуй, проще всего работать, если количество параметров фиксировано при написании кода; отдельные параметры просто становятся дополнительными параметрами к :func:()
!execl*` функции. Варианты «v» хороши, когда количество параметров является переменным, а аргументы передаются в списке или кортеже как параметр args. В любом случае аргументы дочернего процесса должны начинаться с имени запускаемой команды, но это не является обязательным.Варианты, в которых есть буква «p» в конце (
execlp()
,execlpe()
,execvp()
, иexecvpe()
) будет использоватьПУТЬ
переменная среды, чтобы найти файл программы. При замене среды (с использованием одного изexec*e `варианты, обсуждаемые в следующем параграфе), новая среда используется в качестве источника :envvar:`ПУТЬ()
переменная. Остальные варианты,execl()
,execle()
,execv()
, иexecve()
, не буду использоватьПУТЬ
переменная для поиска исполняемого файла; path должен содержать соответствующий абсолютный или относительный путь. Относительные пути должны включать хотя бы одну косую черту, даже в Windows, поскольку простые имена не будут разрешены.Для
execle()
,execlpe()
,execve()
іexecvpe()
(зауважте, що всі вони закінчуються на „e”), параметр env має бути зіставленням який використовується для визначення змінних середовища для нового процесу (вони використовуються замість середовища поточного процесу); функціїexecl()
,execlp()
,execv()
іexecvp()
змушують новий процес успадковувати середовище поточного процесу.Для
execve()
на деяких платформах шлях також може бути вказаний як дескриптор відкритого файлу. Ця функція може не підтримуватися на вашій платформі; ви можете перевірити, чи він доступний, за допомогоюos.supports_fd
. Якщо він недоступний, його використання призведе до помилкиNotImplementedError
.Викликає подію аудиту
os.exec
з аргументамиpath
,args
,env
.Dostępność: Unix, Windows, not WASI, not Android, not iOS.
Zmienione w wersji 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу для
execve()
.Zmienione w wersji 3.6: Accepts a path-like object.
- os._exit(n)¶
Вийдіть із процесу зі статусом n, без виклику обробників очищення, очищення буферів stdio тощо.
Informacja
Стандартный способ выхода:
sys.exit(n)
._exit()
обычно следует использовать в дочернем процессе только послевилка()
.
Наступні коди виходу визначені та можуть використовуватися з _exit()
, хоча вони не є обов’язковими. Зазвичай вони використовуються для системних програм, написаних мовою Python, таких як зовнішня програма доставки команд поштового сервера.
Informacja
Bazı değişkenlikler olduğundan, bunlardan bazıları tüm Unix platformlarında mevcut olmayabilir. Bu sabitler, temel alınan platform tarafından tanımlandıkları yerde tanımlanır.
- os.EX_OK¶
Код выхода, который означает, что ошибки не произошло. Может быть взято из определенного значения
EXIT_SUCCESS
на некоторых платформах. Обычно имеет нулевое значение.Dostępność: Unix, Windows.
- os.EX_USAGE¶
Код виходу, який означає, що команда була використана неправильно, наприклад, коли вказано неправильну кількість аргументів.
Dostępność: Unix, not WASI.
- os.EX_DATAERR¶
Код виходу, який означає, що введені дані були неправильними.
Dostępność: Unix, not WASI.
- os.EX_NOINPUT¶
Код виходу, який означає, що вхідний файл не існував або не читався.
Dostępność: Unix, not WASI.
- os.EX_NOUSER¶
Код виходу, який означає, що вказаний користувач не існував.
Dostępność: Unix, not WASI.
- os.EX_NOHOST¶
Код виходу, який означає, що вказаний хост не існував.
Dostępność: Unix, not WASI.
- os.EX_UNAVAILABLE¶
Код виходу, який означає, що потрібна послуга недоступна.
Dostępność: Unix, not WASI.
- os.EX_SOFTWARE¶
Код виходу, який означає, що виявлено внутрішню помилку програмного забезпечення.
Dostępność: Unix, not WASI.
- os.EX_OSERR¶
Код виходу, який означає, що виявлено помилку операційної системи, наприклад неможливість розгалуження або створення каналу.
Dostępność: Unix, not WASI.
- os.EX_OSFILE¶
Код виходу, який означає, що якийсь системний файл не існував, його неможливо відкрити або якийсь інший тип помилки.
Dostępność: Unix, not WASI.
- os.EX_CANTCREAT¶
Код виходу означає, що вказаний користувачем вихідний файл неможливо створити.
Dostępność: Unix, not WASI.
- os.EX_IOERR¶
Код виходу, який означає, що сталася помилка під час виконання вводу-виводу для деякого файлу.
Dostępność: Unix, not WASI.
- os.EX_TEMPFAIL¶
Код виходу, який означає, що стався тимчасовий збій. Це вказує на те, що насправді не може бути помилкою, наприклад мережеве підключення, яке не вдалося встановити під час повторної операції.
Dostępność: Unix, not WASI.
- os.EX_PROTOCOL¶
Код виходу, який означає, що обмін протоколом був незаконним, недійсним або незрозумілим.
Dostępność: Unix, not WASI.
- os.EX_NOPERM¶
Код виходу, який означає, що було недостатньо дозволів для виконання операції (але не призначений для проблем файлової системи).
Dostępność: Unix, not WASI.
- os.EX_CONFIG¶
Код виходу, який означає, що сталася якась помилка конфігурації.
Dostępność: Unix, not WASI.
- os.EX_NOTFOUND¶
Код виходу, який означає щось на зразок „запис не знайдено”.
Dostępność: Unix, not WASI.
- os.fork()¶
Розгалужуйте дочірній процес. Повертає
0
у дочірньому процесі та ідентифікатор дочірнього процесу в батьківському. У разі виникнення помилки виникаєOSError
.Зауважте, що деякі платформи, включаючи FreeBSD <= 6.3 і Cygwin, мають відомі проблеми під час використання
fork()
із потоку.Викликає подію аудиту
os.fork
без аргументів.Ostrzeżenie
Если вы используете сокеты TLS в приложении, вызывающем
вилка()
, см. предупреждение вssl
документация.Ostrzeżenie
В macOS использование этой функции небезопасно в сочетании с использованием системных API более высокого уровня, включая использование
urllib.request
.Zmienione w wersji 3.8: Виклик
fork()
у підінтерпретаторі більше не підтримується (виникаєRuntimeError
).Zmienione w wersji 3.12: Если Python может обнаружить, что ваш процесс имеет несколько потоков,
os.fork()
теперь поднимает вопросDeprecationWarning
.Мы решили отображать это как предупреждение, когда оно обнаруживается, чтобы лучше информировать разработчиков о проблеме проектирования, которую платформа POSIX специально отмечает как не поддерживаемую. Даже в коде, который кажется работающим, никогда не было безопасно смешивать многопоточность с
os.fork()
на платформах POSIX. Сама среда выполнения CPython всегда выполняла вызовы API, которые небезопасны для использования в дочернем процессе, когда в родительском процессе существовали потоки (например,Маллок
ибесплатно
).Пользователи macOS или пользователи реализаций libc или malloc, отличных от тех, которые обычно встречаются в glibc на сегодняшний день, относятся к числу тех, кто уже с большей вероятностью столкнется с тупиками при выполнении такого кода.
См. «Это обсуждение несовместимости форка с потоками». <https://discuss.python.org/t/33555>`_ для получения технических подробностей о том, почему мы сообщаем разработчикам об этой давней проблеме совместимости платформ.
Dostępność: POSIX, not WASI, not Android, not iOS.
- os.forkpty()¶
Розгалужуйте дочірній процес, використовуючи новий псевдотермінал як керуючий термінал дочірнього процесу. Повертає пару
(pid, fd)
, де pid є0
у дочірньому, ідентифікатор нового дочірнього процесу в батьківському, а fd є дескриптором файлу головного кінця псевдотермінал. Для більш портативного підходу використовуйте модульpty
. У разі виникнення помилки виникаєOSError
.Викликає подію аудиту
os.forkpty
без аргументів.Ostrzeżenie
В macOS использование этой функции небезопасно в сочетании с использованием системных API более высокого уровня, включая использование
urllib.request
.Zmienione w wersji 3.8: Виклик
forkpty()
у підінтерпретаторі більше не підтримується (виникаєRuntimeError
).Zmienione w wersji 3.12: Если Python может обнаружить, что ваш процесс имеет несколько потоков, это теперь вызывает
DeprecationWarning
. См. более подробное объяснение наos.fork()
.Dostępność: Unix, not WASI, not Android, not iOS.
- os.kill(pid, sig, /)¶
Надішліть сигнал sig процесу pid. Константи для конкретних сигналів, доступних на хост-платформі, визначаються в модулі
signal
.Windows: Сигналы
signal.CTRL_C_EVENT
иsignal.CTRL_BREAK_EVENT
— это специальные сигналы, которые можно отправлять только консольным процессам, которые используют общее окно консоли, например некоторым подпроцессам. Любое другое значение sig приведет к безоговорочному завершению процесса API TerminateProcess, а код выхода будет установлен на sig.Дивіться також
signal.pthread_kill()
.Викликає подію аудиту
os.kill
з аргументамиpid
,sig
.Dostępność: Unix, Windows, not WASI, not iOS.
Zmienione w wersji 3.2: Dodano wsparcie dla WIndowsa.
- os.killpg(pgid, sig, /)¶
Надішліть сигнал sig до групи процесів pgid.
Викликає подію аудиту
os.killpg
з аргументамиpgid
,sig
.Dostępność: Unix, not WASI, not iOS.
- os.nice(increment, /)¶
Додайте приріст до „витонченості” процесу. Поверніть нову привабливість.
Dostępność: Unix, not WASI.
- os.pidfd_open(pid, flags=0)¶
Возвращает дескриптор файла, относящийся к процессу pid с установленными флагами. Этот дескриптор можно использовать для управления процессом без гонок и сигналов.
Додаткову інформацію можна знайти на сторінці довідки pidfd_open(2).
Dostępność: Linux >= 5.3, Android >=
build-time
API level 31Dodane w wersji 3.9.
- os.PIDFD_NONBLOCK¶
Этот флаг указывает, что файловый дескриптор будет неблокирующим. Если процесс, на который ссылается файловый дескриптор, еще не завершился, то попытка дождаться файлового дескриптора с помощью waitid(2) немедленно вернет ошибку
EAGAIN
а не блокировать.
Dostępność: Linux >= 5.10
Dodane w wersji 3.12.
- os.plock(op, /)¶
Блокування сегментів програми в пам’яті. Значення op (визначене в
<sys/lock.h>
) визначає, які сегменти заблоковано.Dostępność: Unix, not WASI, not iOS.
- os.popen(cmd, mode='r', buffering=-1)¶
Откройте канал к или от команды cmd. Возвращаемое значение — это открытый файловый объект, подключенный к каналу, который можно читать или записывать в зависимости от того, установлен ли mode.
'р'
(по умолчанию) или'в'
. Аргумент buffering имеет то же значение, что и соответствующий аргумент встроенной функции.открыть()
функция. Возвращенный файловый объект читает или записывает текстовые строки, а не байты.Метод
close
повертаєNone
, якщо підпроцес завершився успішно, або код повернення підпроцесу, якщо сталася помилка. У системах POSIX, якщо код повернення позитивний, він представляє значення, що повертається процесом, зміщене вліво на один байт. Якщо код повернення від’ємний, це означає, що процес було припинено за допомогою сигналу, поданого зведеним значенням коду повернення. (Наприклад, значення, що повертається, може бути- signal.SIGKILL
, якщо підпроцес було закрито.) У системах Windows значення, що повертається, містить цілочисельний код повернення зі знаком від дочірнього процесу.В Unix
waitstatus_to_exitcode()
можна використовувати для перетворення результату методуclose
(статус виходу) у код виходу, якщо він неNone
. У Windows результатом методуclose
є безпосередньо код виходу (абоNone
).Це реалізовано за допомогою
subprocess.Popen
; перегляньте документацію цього класу, щоб дізнатися про більш потужні способи керування підпроцесами та спілкування з ними.Dostępność: not WASI, not Android, not iOS.
Informacja
:ref:`Режим Python UTF-8 ` влияет на кодировки, используемые для cmd и содержимого канала.
попэн()
это простая оболочка вокругsubprocess.Popen
. Использоватьsubprocess.Popen
илиsubprocess.run()
для управления такими параметрами, как кодировки.
- os.posix_spawn(path, argv, env, *, file_actions=None, setpgroup=None, resetids=False, setsid=False, setsigmask=(), setsigdef=(), scheduler=None)¶
Обертывает
posix_spawn()
API библиотеки C для использования из Python.Більшість користувачів повинні використовувати
subprocess.run()
замістьposix_spawn()
.Позиционные аргументы path, args и env аналогичны
execve()
. env разрешеноНет
, и в этом случае используется среда текущего процесса.Параметр path — це шлях до виконуваного файлу. Шлях має містити каталог. Використовуйте
posix_spawnp()
, щоб передати виконуваний файл без каталогу.Аргумент file_actions може бути послідовністю кортежів, що описують дії, які потрібно виконати над певними дескрипторами файлів у дочірньому процесі між кроками
fork()
іexec()
реалізації бібліотеки C. Перший елемент у кожному кортежі має бути одним із трьох наведених нижче індикаторів типу, що описують інші елементи кортежу:- os.POSIX_SPAWN_OPEN¶
(
os.POSIX_SPAWN_OPEN
, fd, шлях, прапори, режим)Виконує
os.dup2(os.open(path, flags, mode), fd)
.
- os.POSIX_SPAWN_CLOSE¶
(
os.POSIX_SPAWN_CLOSE
, fd)Performs
os.close(fd)
.
- os.POSIX_SPAWN_DUP2¶
(
os.POSIX_SPAWN_DUP2
, fd, new_fd)Виконує
os.dup2(fd, new_fd)
.
- os.POSIX_SPAWN_CLOSEFROM¶
(
os.POSIX_SPAWN_CLOSEFROM
, fd)Выполняет
os.closerange(fd, INF)
.
Эти кортежи соответствуют библиотеке C.
posix_spawn_file_actions_addopen()
,posix_spawn_file_actions_addclose()
,posix_spawn_file_actions_addup2()
, иposix_spawn_file_actions_addclosefrom_np()
Вызовы API, используемые для подготовки кposix_spawn()
позвони себе.Аргумент setpgroup установит для группы дочернего процесса указанное значение. Если указанное значение равно 0, идентификатор дочерней группы процессов будет равен идентификатору ее процесса. Если значение setpgroup не установлено, дочерний процесс унаследует идентификатор родительской группы процессов. Этот аргумент соответствует библиотеке C.
POSIX_SPAWN_SETPGROUP
флаг.Если аргумент resetids равен
Правда
он сбросит эффективные UID и GID дочернего процесса на реальные UID и GID родительского процесса. Если аргументЛожь
, то дочерний элемент сохраняет действующие UID и GID родителя. В любом случае, если биты разрешений set-user-ID и set-group-ID включены в исполняемом файле, их действие будет переопределять настройку эффективных UID и GID. Этот аргумент соответствует библиотеке C.POSIX_SPAWN_RESETIDS
флаг.Если аргумент setsid равен
Правда
, он создаст новый идентификатор сеанса дляposix_spawn
. setsid требуетPOSIX_SPAWN_SETSID
илиPOSIX_SPAWN_SETSID_NP
флаг. В противном случае,NotImplementedError
поднят.Аргумент setsigmask установит маску сигнала в соответствии с указанным набором сигналов. Если параметр не используется, то дочерний элемент наследует маску сигнала родителя. Этот аргумент соответствует библиотеке C.
POSIX_SPAWN_SETSIGMASK
флаг.Аргумент sigdef сбросит расположение всех сигналов в указанном наборе. Этот аргумент соответствует библиотеке C.
POSIX_SPAWN_SETSIGDEF
флаг.Аргумент scheduler должен быть кортежем, содержащим (необязательную) политику планировщика и экземпляр
sched_param
с параметрами планировщика. ЗначениеНет
вместо политики планировщика указано, что не предоставляется. Этот аргумент представляет собой комбинацию библиотеки CPOSIX_SPAWN_SETSCHEDPARAM
иPOSIX_SPAWN_SETSCHEDULER
флаги.Викликає подію аудиту
os.posix_spawn
з аргументамиpath
,argv
,env
.Dodane w wersji 3.8.
Zmienione w wersji 3.13: Параметр env принимается
Нет
.os.POSIX_SPAWN_CLOSEFROM
доступен на платформах, гдеposix_spawn_file_actions_addclosefrom_np()
существует.Dostępność: Unix, not WASI, not Android, not iOS.
- os.posix_spawnp(path, argv, env, *, file_actions=None, setpgroup=None, resetids=False, setsid=False, setsigmask=(), setsigdef=(), scheduler=None)¶
Обертывает
posix_spawnp()
API библиотеки C для использования из Python.Подібно до
posix_spawn()
, за винятком того, що система шукає виконуваний файл у списку каталогів, визначених змінною середовищаPATH
(так само, як і дляexecvp(3)
).Викликає подію аудиту
os.posix_spawn
з аргументамиpath
,argv
,env
.Dodane w wersji 3.8.
Dostępność: POSIX, not WASI, not Android, not iOS.
См. документацию
posix_spawn()
.
- os.register_at_fork(*, before=None, after_in_parent=None, after_in_child=None)¶
Зареєструйте виклики, які будуть виконуватися, коли новий дочірній процес розгалужується за допомогою
os.fork()
або аналогічного API клонування процесу. Параметри є необов’язковими та містять лише ключові слова. Кожен із них визначає окремий пункт виклику.before — це функція, яка викликається перед розгалуженням дочірнього процесу.
after_in_parent — це функція, яка викликається з батьківського процесу після розгалуження дочірнього процесу.
after_in_child — це функція, яка викликається з дочірнього процесу.
Ці виклики здійснюються лише в тому випадку, якщо очікується, що контроль повернеться до інтерпретатора Python. Типовий запуск підпроцесу
subprocess
не запустить їх, оскільки дитина не збирається повторно входити в інтерпретатор.Функції, зареєстровані для виконання перед розгалуженням, викликаються у зворотному порядку реєстрації. Функції, зареєстровані для виконання після розгалуження (або в батьківському, або в дочірньому) викликаються в порядку реєстрації.
Зауважте, що виклики
fork()
, здійснені стороннім C-кодом, можуть не викликати ці функції, якщо тільки вони явно не викликаютьPyOS_BeforeFork()
,PyOS_AfterFork_Parent()
іPyOS_AfterFork_Child()
.Немає способу скасувати реєстрацію функції.
Dostępność: Unix, not WASI, not Android, not iOS.
Dodane w wersji 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)¶
Виконайте шлях програми в новому процесі.
(Зверніть увагу, що модуль
subprocess
надає потужніші можливості для створення нових процесів і отримання їх результатів; використання цього модуля є кращим, ніж використання цих функцій. Особливо перевірте розділ Replacing Older Functions with the subprocess Module.)Якщо mode
P_NOWAIT
, ця функція повертає ідентифікатор процесу нового процесу; якщо mode дорівнюєP_WAIT
, повертає код виходу процесу, якщо він завершується нормально, або-signal
, де signal є сигналом, який зупинив процес. У Windows ідентифікатор процесу фактично буде ідентифікатором процесу, тому його можна використовувати з функцієюwaitpid()
.Зверніть увагу на VxWorks, ця функція не повертає
-signal
, коли новий процес завершується. Натомість викликає виняток OSError.Варианты „l” и „v”
spawn* ` функции различаются способом передачи аргументов командной строки. С вариантами «l», пожалуй, проще всего работать, если количество параметров фиксировано при написании кода; отдельные параметры просто становятся дополнительными параметрами к :func:()
!spawnl*` функции. Варианты «v» хороши, когда количество параметров является переменным, а аргументы передаются в списке или кортеже как параметр args. В любом случае аргументы дочернего процесса должны начинаться с имени запускаемой команды.Варіанти, які включають друге „p” у кінці (
spawnlp()
,spawnlpe()
,spawnvp()
іspawnvpe()
), використовуватимутьPATH
змінна середовища для пошуку файлу програми. Під час заміни середовища (з використанням одного з варіантів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)
Викликає подію аудиту
os.spawn
з аргументамиmode
,path
,args
,env
.Dostępność: Unix, Windows, not WASI, not Android, not iOS.
spawnlp()
,spawnlpe()
,spawnvp()
иspawnvpe()
недоступны в Windows.spawnle()
иspawnve()
не являются потокобезопасными в Windows; мы советуем вам использоватьподпроцесс
вместо этого модуль.Zmienione w wersji 3.6: Accepts a path-like object.
- os.P_NOWAIT¶
- os.P_NOWAITO¶
Возможные значения параметра mode для
spawn* `семейство функций. Если указано любое из этих значений, :func:`spawn*()
функции вернутся, как только будет создан новый процесс, с идентификатором процесса в качестве возвращаемого значения.Dostępność: Unix, Windows.
- os.P_WAIT¶
Возможное значение параметра mode для
spawn* `семейство функций. Если это задано как *mode*, :func:`spawn*()
функции не вернутся до тех пор, пока новый процесс не завершится до завершения, и вернут код завершения процесса, запуск которого был успешным, или-сигнал
если сигнал убивает процесс.Dostępność: Unix, Windows.
- os.P_DETACH¶
- os.P_OVERLAY¶
Можливі значення для параметра mode для сімейства функцій
spawn*
. Вони менш портативні, ніж перелічені вище.P_DETACH
подібний доP_NOWAIT
, але новий процес від’єднується від консолі процесу, що викликає. ЯкщоP_OVERLAY
використовується, поточний процес буде замінено; функціяspawn*
не повернеться.Dostępność: Windows.
- os.startfile(path[, operation][, arguments][, cwd][, show_cmd])¶
Запустіть файл із пов’язаною програмою.
Если operation не указано, это действует как двойной щелчок файла в проводнике Windows или передача имени файла в качестве аргумента старт команда из интерактивной командной оболочки: файл открывается любым приложением (если таковое имеется), с которым связано его расширение.
Если задана другая операция, это должен быть «командный глагол», указывающий, что следует сделать с файлом. Распространенные глаголы, задокументированные Microsoft:
'открыть'
,'распечатать'
и'редактировать'
(для использования в файлах), а также'исследовать'
и'найти'
(для использования в каталогах).Під час запуску програми вкажіть аргументи, які передаються як один рядок. Цей аргумент може не мати ефекту під час використання цієї функції для запуску документа.
Робочий каталог за замовчуванням успадковується, але може бути перевизначений аргументом cwd. Це має бути абсолютний шлях. Відносний шлях буде вирішено проти цього аргументу.
Используйте show_cmd, чтобы переопределить стиль окна по умолчанию. Будет ли это иметь какой-либо эффект, будет зависеть от запускаемого приложения. Значения представляют собой целые числа, поддерживаемые Win32.
ShellExecute()
функция.startfile()
повертається, щойно буде запущено відповідну програму. Немає можливості чекати, поки програма закриється, і немає способу отримати статус виходу програми. Параметр path відноситься до поточного каталогу або cwd. Якщо ви хочете використовувати абсолютний шлях, переконайтеся, що перший символ не є скісною рискою ('/'
). Використовуйтеpathlib
або функціюos.path.normpath()
, щоб переконатися, що шляхи правильно закодовані для Win32.Чтобы уменьшить затраты на запуск интерпретатора, Win32
ShellExecute()
функция не разрешается до первого вызова этой функции. Если функция не может быть решена,NotImplementedError
будет повышен.Викликає подію аудиту
os.startfile
з аргументамиpath
,operation
.Викликає подію аудиту
os.startfile/2
з аргументамиpath
,operation
,arguments
,cwd
,show_cmd
.Dostępność: Windows.
Zmienione w wersji 3.10: Додано аргументи arguments, cwd і show_cmd і подію аудиту
os.startfile/2
.
- os.system(command)¶
Виконайте команду (рядок) у підоболонці. Це реалізується шляхом виклику стандартної функції C
system()
і має ті самі обмеження. Зміни вsys.stdin
тощо не відображаються в середовищі виконуваної команди. Якщо команда генерує будь-який вихід, він буде надісланий до стандартного потоку виводу інтерпретатора. Стандарт C не визначає значення значення, що повертається функцією C, тому значення, що повертається функцією Python, залежить від системи.В Unix значення, що повертається, є статусом завершення процесу, закодованим у форматі, указаному для
wait()
.У Windows повертається значення, яке повертає системна оболонка після виконання команди. Оболонка визначається змінною середовища Windows
COMSPEC
: зазвичай це cmd.exe, яка повертає статус завершення виконання команди; у системах, які використовують нерідну оболонку, зверніться до документації вашої оболонки.The
subprocess
module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using this function. See the Replacing Older Functions with the subprocess Module section in thesubprocess
documentation for some helpful recipes.В Unix
waitstatus_to_exitcode()
можна використовувати для перетворення результату (статус виходу) у код виходу. У Windows результатом є безпосередньо код виходу.Викликає подію аудиту
os.system
з аргументомcommand
.Dostępność: Unix, Windows, not WASI, not Android, not iOS.
- os.times()¶
Повертає поточний глобальний час процесу. Повернене значення є об’єктом із п’ятьма атрибутами:
user
- час користувачаsystem
- системний часchildren_user
- час користувача всіх дочірніх процесівchildren_system
- системний час усіх дочірніх процесівelapsed
- реальний час, що минув від фіксованої точки в минулому
Для зворотної сумісності цей об’єкт також поводиться як п’ять кортежів, що містять
user
,system
,children_user
,children_system
іминало
в такому порядку.См. страницу руководства Unix. times(2) и раз(3) справочную страницу по Unix или GetProcessTimes MSDN в Windows. Только в Windows
user
исистема
известны; остальные атрибуты равны нулю.Dostępność: Unix, Windows.
Zmienione w wersji 3.3: Тип повернення змінено з кортежу на кортежний об’єкт з іменованими атрибутами.
- os.wait()¶
Зачекайте на завершення дочірнього процесу та поверніть кортеж, що містить його pid та індикацію статусу виходу: 16-розрядне число, чий молодший байт є номером сигналу, що вбив процес, а старший байт є статусом виходу (якщо сигнал число дорівнює нулю); старший біт молодшого байта встановлюється, якщо було створено основний файл.
Дождитесь завершения дочернего процесса и верните кортеж, содержащий его pid и указание статуса выхода: 16-битное число, младший байт которого — это номер сигнала, который завершил процесс, а старший байт — статус выхода (если сигнал число равно нулю); старший бит младшего байта устанавливается, если был создан основной файл.
waitstatus_to_exitcode()
можна використовувати для перетворення статусу виходу в код виходу.Dostępność: Unix, not WASI, not Android, not iOS.
Zobacz także
Другой
подожди*()
Функции, описанные ниже, можно использовать для ожидания завершения определенного дочернего процесса и иметь больше возможностей.waitpid()
является единственным, доступным в Windows.
- os.waitid(idtype, id, options, /)¶
Дождитесь завершения дочернего процесса.
idtype может быть
P_PID
,P_PGID
,P_ALL
, или (в Linux)P_PIDFD
. От этого зависит интерпретация id; см. их отдельные описания.options — это комбинация флагов ИЛИ. По крайней мере один из
WEXITED
,WSTOPPED
илиWПРОДОЛЖЕНИЕ
требуется;WNOHANG
иWNOWAIT
являются дополнительными необязательными флагами.Возвращаемое значение — это объект, представляющий данные, содержащиеся в
siginfo_t
структура со следующими атрибутами:si_pid
(идентификатор процесса)if_uid
(реальный идентификатор пользователя ребенка)yes_signo
(всегдаSIGCHLD
)if_status
(статус выхода или номер сигнала, в зависимости отsi_code
)si_code
(видетьCLD_EXITED
для возможных значений)
Если
WNOHANG
указан и в запрошенном состоянии нет соответствующих дочерних элементов,Нет
возвращается. В противном случае, если нет подходящих детей, которых можно было бы ожидать,ChildProcessError
поднят.Dostępność: Unix, not WASI, not Android, not iOS.
Dodane w wersji 3.3.
Zmienione w wersji 3.13: Эта функция теперь доступна и в macOS.
- os.waitpid(pid, options, /)¶
Bu işlevin ayrıntıları Unix ve Windows’ta farklılık gösterir.
В Unix: зачекайте на завершення дочірнього процесу, заданого ідентифікатором процесу pid, і поверніть кортеж, що містить ідентифікатор його процесу та вказівку статусу виходу (закодовано як для
wait()
). На семантику виклику впливає значення цілого числа options, яке має бути0
для нормальної роботи.Якщо pid більший за
0
,waitpid()
запитує інформацію про статус для цього конкретного процесу. Якщо pid дорівнює0
, запит стосується статусу будь-якого дочірнього елемента в групі поточного процесу. Якщо pid має значення-1
, запит стосується будь-якого дочірнього процесу поточного процесу. Якщо pid менший за-1
, статус запитується для будь-якого процесу в групі процесів-pid
(абсолютне значення pid).options — это комбинация флагов ИЛИ. Если он содержит
WNOHANG
и в запрошенном состоянии нет подходящих дочерних элементов,(0, 0)
возвращается. В противном случае, если нет подходящих детей, которых можно было бы ожидать,ChildProcessError
поднят. Другие варианты, которые можно использовать:WUNTRACED
иWПРОДОЛЖЕНИЕ
.У Windows: дочекайтеся завершення процесу, заданого дескриптором процесу pid, і поверніть кортеж, що містить pid, а його статус виходу зміщений вліво на 8 біт (зміщення полегшує використання функції на різних платформах). pid менше або дорівнює
0
не має особливого значення в Windows і викликає виключення. Значення цілого параметра не впливає. pid може посилатися на будь-який процес, ідентифікатор якого відомий, не обов’язково дочірній процес. Функціїspawn*
, викликані за допомогоюP_NOWAIT
, повертають відповідні дескриптори процесу.waitstatus_to_exitcode()
можна використовувати для перетворення статусу виходу в код виходу.Dostępność: Unix, Windows, not WASI, not Android, not iOS.
Zmienione w wersji 3.5: Jeśli wywołanie systemowe zostanie przerwane, a program obsługi sygnału nie rzuci wyjątku, funkcji ponawia teraz wywołanie systemowe zamiast rzucenja wyjątku
InterruptedError
(zobacz PEP 475 dla uzasadnienia).
- os.wait3(options)¶
Похоже на:
waitpid()
, за исключением того, что аргумент идентификатора процесса не передается и возвращается кортеж из трех элементов, содержащий идентификатор дочернего процесса, указание статуса выхода и информацию об использовании ресурсов. Обратитесь кresource.getrusage()
для получения подробной информации об использовании ресурсов. Аргумент options аналогичен аргументу, предоставленномуwaitpid()
иwait4()
.waitstatus_to_exitcode()
можна використовувати для перетворення статусу виходу в код виходу.Dostępność: Unix, not WASI, not Android, not iOS.
- os.wait4(pid, options)¶
Похоже на:
waitpid()
, за исключением кортежа из 3 элементов, содержащего идентификатор дочернего процесса, указание статуса завершения и информацию об использовании ресурсов. Обратитесь кresource.getrusage()
для получения подробной информации об использовании ресурсов. Аргументыwait4()
такие же, как и предоставленныеwaitpid()
.waitstatus_to_exitcode()
можна використовувати для перетворення статусу виходу в код виходу.Dostępność: Unix, not WASI, not Android, not iOS.
- os.P_PID¶
- os.P_PGID¶
- os.P_ALL¶
- os.P_PIDFD¶
Это возможные значения idtype в
waitid()
. Они влияют на интерпретацию id:P_PID
- дождаться ребенка, PID которого равен id.P_PGID
- дождаться любого ребенка, чей идентификатор группы прогресса равен id.P_ALL
- дождаться любого ребенка; id игнорируется.P_PIDFD
- дождаться потомка, идентифицированного файловым дескриптором id (дескриптор файла процесса, созданный с помощьюpidfd_open()
).
Dostępność: Unix, not WASI, not Android, not iOS.
Informacja
P_PIDFD
доступен только в Linux >= 5.4.Dodane w wersji 3.3.
Dodane w wersji 3.9: The
P_PIDFD
постоянный.
- os.WCONTINUED¶
Этот флаг options для
waitpid()
,подожди3()
,wait4()
, иwaitid()
вызывает сообщение о дочерних процессах, если они были продолжены после остановки управления заданиями с момента последнего сообщения о них.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WEXITED¶
Этот флаг options для
waitid()
вызывает сообщение о дочерних процессах, которые завершились.Другой
подожди*
функции всегда сообщают о дочерних элементах, которые завершились, поэтому эта опция для них недоступна.Dostępność: Unix, not WASI, not Android, not iOS.
Dodane w wersji 3.3.
- os.WSTOPPED¶
Этот флаг options для
waitid()
вызывает дочерние процессы, которые были остановлены доставкой сигнала, о которых необходимо сообщить.Эта опция недоступна для других
подожди*
функции.Dostępność: Unix, not WASI, not Android, not iOS.
Dodane w wersji 3.3.
- os.WUNTRACED¶
Этот флаг options для
waitpid()
,подожди3()
, иwait4()
заставляет также сообщать о дочерних процессах, если они были остановлены, но об их текущем состоянии не сообщалось с момента их остановки.Эта опция недоступна для
waitid()
.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WNOHANG¶
Этот флаг options вызывает
waitpid()
,подожди3()
,wait4()
, иwaitid()
для немедленного возврата, если статус дочернего процесса не доступен сразу.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WNOWAIT¶
Этот флаг options вызывает
waitid()
оставить ребенка в состоянии ожидания, чтобы позжеподожди*()
вызов можно использовать для повторного получения информации о статусе дочернего элемента.Эта опция недоступна для других
подожди*
функции.Dostępność: Unix, not WASI, not Android, not iOS.
- os.CLD_EXITED¶
- os.CLD_KILLED¶
- os.CLD_DUMPED¶
- os.CLD_TRAPPED¶
- os.CLD_STOPPED¶
- os.CLD_CONTINUED¶
Это возможные значения для
si_code
в результате, возвращенномwaitid()
.Dostępność: Unix, not WASI, not Android, not iOS.
Dodane w wersji 3.3.
Zmienione w wersji 3.9: Додано значення
CLD_KILLED
іCLD_STOPPED
.
- os.waitstatus_to_exitcode(status)¶
Перетворення статусу очікування на код виходу.
Unix’te:
Якщо процес закінчився нормально (якщо
WIFEXITED(статус)
має значення true), повертає статус виходу процесу (повертаєWEXITSTATUS(статус)
): результат більше або дорівнює 0.Якщо процес було припинено через сигнал (якщо
WIFSIGNALED(status)
має значення true), повертає-signum
, де signum — це номер сигналу, який спричинив завершення процесу (повертає- WTERMSIG(статус)
): результат менше 0.Інакше викличте
ValueError
.
У Windows повертає статус, зміщений праворуч на 8 біт.
В Unix, якщо процес відстежується або якщо
waitpid()
було викликано з опцієюWUNTRACED
, абонент повинен спочатку перевірити, чиWIFSTOPPED(status)
є істинним. Цю функцію не можна викликати, якщоWIFSTOPPED(статус)
має значення true.Zobacz także
Функції
WIFEXITED()
,WEXITSTATUS()
,WIFSIGNALED()
,WTERMSIG()
,WIFSTOPPED()
,WSTOPSIG()
.Dostępność: Unix, Windows, not WASI, not Android, not iOS.
Dodane w wersji 3.9.
Наступні функції приймають код стану процесу, який повертає system()
, wait()
або waitpid()
як параметр. Вони можуть бути використані для визначення розташування процесу.
- os.WCOREDUMP(status, /)¶
Повертає
True
, якщо для процесу було створено дамп ядра, інакше повертаєFalse
.Цю функцію слід використовувати, лише якщо
WIFSIGNALED()
має значення true.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WIFCONTINUED(status)¶
Возвращаться
Правда
если остановившийся ребенок был возобновлен родамиSIGCONT
(если процесс был продолжен после остановки управления заданием), в противном случае возвратЛожь
.Перегляньте параметр
WCONTINUED
.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WIFSTOPPED(status)¶
Повертає
True
, якщо процес було зупинено доставкою сигналу, інакше повертаєFalse
.WIFSTOPPED()
повертаєTrue
, лише якщо викликwaitpid()
було виконано за допомогою параметраWUNTRACED
або коли процес відстежується (див. ptrace(2) ).Dostępność: Unix, not WASI, not Android, not iOS.
- os.WIFSIGNALED(status)¶
Повертає
True
, якщо процес було припинено сигналом, інакше повертаєFalse
.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WIFEXITED(status)¶
Повертає
True
, якщо процес завершився нормально, тобто викликомexit()
чи_exit()
, або шляхом повернення зmain()
; інакше повертаєFalse
.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WEXITSTATUS(status)¶
Повернути статус виходу процесу.
Цю функцію слід використовувати, лише якщо
WIFEXITED()
має значення true.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WSTOPSIG(status)¶
Повернути сигнал, який спричинив зупинку процесу.
Цю функцію слід використовувати, лише якщо
WIFSTOPPED()
має значення true.Dostępność: Unix, not WASI, not Android, not iOS.
- os.WTERMSIG(status)¶
Повертає номер сигналу, який викликав завершення процесу.
Цю функцію слід використовувати, лише якщо
WIFSIGNALED()
має значення true.Dostępność: Unix, not WASI, not Android, not iOS.
Інтерфейс до планувальника¶
Bu işlevler, işletim sistemi tarafından bir işlemeye CPU zamanının nasıl tahsis edildiğini kontrol eder. Yalnızca bazı Unix platformlarında mevcutturlar. Daha ayrıntılı bilgi için Unix kılavuz sayfalarınıza bakın.
Dodane w wersji 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 є однією з наведених вище констант політики планування.
- os.sched_get_priority_max(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()¶
Abandona voluntariamente a CPU. Veja sched_yield(2) para detalhes.
- os.sched_setaffinity(pid, mask, /)¶
Обмежте процес за допомогою PID pid (або поточного процесу, якщо дорівнює нулю) набору ЦП. mask — це ітерація цілих чисел, що представляють набір процесорів, якими має бути обмежений процес.
- os.sched_getaffinity(pid, /)¶
Возвращает набор процессоров, которыми ограничен процесс с PID pid.
Если pid равен нулю, возвращает набор процессоров, которыми ограничен вызывающий поток текущего процесса.
См. также
process_cpu_count()
функция.
Різна системна інформація¶
- os.confstr(name, /)¶
Повертає рядкові значення конфігурації системи. name вказує значення конфігурації для отримання; це може бути рядок, який є назвою визначеного системного значення; ці імена вказані в ряді стандартів (POSIX, Unix 95, Unix 98 та ін.). Деякі платформи також визначають додаткові імена. Імена, відомі головній операційній системі, надаються як ключі словника
confstr_names
. Для змінних конфігурації, не включених до цього відображення, також допускається передача цілого числа для name.Якщо значення конфігурації, указане name, не визначено, повертається
None
.Якщо name є рядком і невідоме, виникає
ValueError
. Якщо певне значення для name не підтримується хост-системою, навіть якщо воно включене вconfstr_names
, виникаєOSError
зerrno.EINVAL
для номера помилки .Dostępność: Unix.
- os.confstr_names¶
Словник зіставляє імена, прийняті
confstr()
, до цілих значень, визначених для цих імен головною операційною системою. Це можна використовувати для визначення набору імен, відомих системі.Dostępność: Unix.
- os.cpu_count()¶
Возвращает количество логических процессоров в системе. Возврат
Нет
если неопределенный.The
process_cpu_count()
Функция может использоваться для получения количества логических процессоров, используемых вызывающим потоком текущего процесса.Dodane w wersji 3.4.
Zmienione w wersji 3.13: Якщо задано
-X cpu_count
чи встановленоPYTHON_CPU_COUNT
,cpu_count()
повертає перевизначене значення n.
- os.getloadavg()¶
Повертає середню кількість процесів у черзі виконання системи за останні 1, 5 і 15 хвилин або викликає
OSError
, якщо середнє значення завантаження неможливо отримати.Dostępność: Unix.
- os.process_cpu_count()¶
Получите количество логических процессоров, используемых вызывающим потоком текущего процесса. Возврат
Нет
если неопределенный. Это может быть меньше, чемcpu_count()
в зависимости от близости процессора.The
cpu_count()
Эту функцию можно использовать для получения количества логических процессоров в системе.Если
-X cpu_count ` задан или :envvar:`PYTHON_CPU_COUNT
установлено,process_cpu_count()
возвращает переопределенное значение n.См. также функцию
sched_getaffinity()
.Dodane w wersji 3.13.
- os.sysconf(name, /)¶
Повертає цілочисельні значення конфігурації системи. Якщо значення конфігурації, указане name, не визначено, повертається
-1
. Коментарі щодо параметра name дляconfstr()
також застосовуються тут; словник, який надає інформацію про відомі імена, надаєтьсяsysconf_names
.Dostępność: Unix.
- os.sysconf_names¶
Словник зіставляє імена, прийняті
sysconf()
, до цілих значень, визначених для цих імен головною операційною системою. Це можна використовувати для визначення набору імен, відомих системі.Dostępność: Unix.
Zmienione w wersji 3.11: Добавлять
'SC_MINSIGSTKSZ''
имя.
Наступні значення даних використовуються для підтримки операцій маніпулювання шляхом. Вони визначені для всіх платформ.
Операції вищого рівня над іменами шляхів визначені в модулі 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¶
Альтернативний символ, який використовується операційною системою для розділення компонентів шляху, або „Немає”, якщо існує лише один роздільний символ. У системах 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).Dodane w wersji 3.3.
Rastgele sayılar¶
- os.getrandom(size, flags=0)¶
Отримайте до size випадкових байтів. Функція може повертати менше байтів, ніж вимагається.
Ці байти можна використовувати для заповнення генераторів випадкових чисел у просторі користувача або для криптографічних цілей.
getrandom()
покладається на ентропію, зібрану з драйверів пристроїв та інших джерел шуму навколишнього середовища. Невиправдане зчитування великої кількості даних матиме негативний вплив на інших користувачів пристроїв/dev/random
і/dev/urandom
.Аргумент flags представляет собой битовую маску, которая может содержать ноль или более следующих значений, объединенных ИЛИ: :py
os.GRND_RANDOM
иGRND_NONBLOCK
.См. также страницу руководства Linux getrandom(). <https://man7.org/linux/man-pages/man2/getrandom.2.html>`_ .
Dostępność: Linux >= 3.17.
Dodane w wersji 3.6.
- os.urandom(size, /)¶
Повертає байтовий рядок розміру випадкових байтів, придатних для криптографічного використання.
Ця функція повертає випадкові байти зі специфічного для ОС джерела випадковості. Повернуті дані мають бути досить непередбачуваними для криптографічних програм, хоча їх точна якість залежить від реалізації ОС.
У Linux, якщо доступний системний виклик
getrandom()
, він використовується в режимі блокування: блокуйте, доки системний пул випадкової ентропії не буде ініціалізовано (128 біт ентропії збирає ядро). Перегляньте PEP 524 для обґрунтування. У Linux функціяgetrandom()
може бути використана для отримання випадкових байтів у неблокуючому режимі (використовуючи прапорGRND_NONBLOCK
) або для опитування, доки системний пул випадкової ентропії не буде ініціалізовано.У Unix-подібній системі випадкові байти зчитуються з пристрою
/dev/urandom
. Якщо пристрій/dev/urandom
недоступний або не читається, виникає винятокNotImplementedError
.В Windows он будет использовать
BCryptGenRandom()
.Zobacz także
Модуль
secrets
забезпечує функції вищого рівня. Про простий у використанні інтерфейс генератора випадкових чисел, наданий вашою платформою, див.random.SystemRandom
.Zmienione w wersji 3.5: У Linux 3.17 і новіших версіях системний виклик
getrandom()
тепер використовується, якщо він доступний. У OpenBSD 5.6 і новіших версіях тепер використовується функція Cgetentropy()
. Ці функції уникають використання внутрішнього файлового дескриптора.Zmienione w wersji 3.5.2: У Linux, якщо системний виклик
getrandom()
блокує (пул ентропії urandom ще не ініціалізовано), поверніться до читання/dev/urandom
.Zmienione w wersji 3.6: У Linux
getrandom()
тепер використовується в режимі блокування для підвищення безпеки.Zmienione w wersji 3.11: В Windows,
BCryptGenRandom()
используется вместоCryptGenRandom()
который устарел.
- os.GRND_NONBLOCK¶
За замовчуванням під час читання з
/dev/random
getrandom()
блокує, якщо випадкові байти недоступні, а під час читання з/dev/urandom
блокує, якщо пул ентропії не має ще не ініціалізовано.Якщо встановлено прапорець
GRND_NONBLOCK
, тоgetrandom()
не блокує в цих випадках, а замість цього негайно викликаєBlockingIOError
.Dodane w wersji 3.6.
- os.GRND_RANDOM¶
Якщо цей біт установлено, випадкові байти витягуються з пулу
/dev/random
замість пулу/dev/urandom
.Dodane w wersji 3.6.