# `os` — Miscellaneous operating system interfaces

Вихідний код: Lib/os.py

Цей модуль забезпечує портативний спосіб використання залежних від операційної системи функцій. Якщо ви хочете просто прочитати або записати файл, дивіться `open()`, якщо ви хочете маніпулювати шляхами, перегляньте модуль `os.path`, а якщо ви хочете прочитати всі рядки в усіх файлах у командному рядку перегляньте модуль `fileinput`. Для створення тимчасових файлів і каталогів перегляньте модуль `tempfile`, а для високорівневої обробки файлів і каталогів дивіться модуль `shutil`.

Примітки щодо доступності цих функцій:

- Конструкція всіх вбудованих залежних від операційної системи модулів Python така, що, поки доступна та сама функціональність, він використовує той самий інтерфейс; наприклад, функція `os.stat(path)` повертає статистичну інформацію про path у тому самому форматі (який, як виявилося, походить з інтерфейсу POSIX).

- Extensions peculiar to a particular operating system are also available through the `os` module, but using them is of course a threat to portability.

- Усі функції, які приймають імена шляхів або файлів, приймають як байти, так і рядкові об’єкти, і в результаті повертають об’єкт того самого типу, якщо повертається шлях або ім’я файлу.

- У VxWorks os.popen, os.fork, os.execv і os.spawn*p* не підтримуються.

- On WebAssembly platforms, Android and iOS, large parts of the `os` module are not available or behave differently. APIs related to processes (e.g. `fork()`, `execve()`) and resources (e.g. `nice()`) are not available. Others like `getuid()` and `getpid()` are emulated or stubs. WebAssembly platforms also lack support for signals (e.g. `kill()`, `wait()`).

Примітка

Усі функції в цьому модулі викликають `OSError` (або його підкласи) у разі недійсних або недоступних імен файлів і шляхів або інших аргументів, які мають правильний тип, але не приймаються операційною системою.

exception os.error

  Псевдонім для вбудованого винятку `OSError`.

os.name

  Назва імпортованого модуля, залежного від операційної системи. Наразі зареєстровано такі назви: `'posix'`, `'nt'`, `'java'`.

  Дивись також

  `sys.platform` has a finer granularity. `os.uname()` gives system-dependent version information.

  Модуль `platform` забезпечує детальну перевірку ідентичності системи.

## Імена файлів, аргументи командного рядка та змінні середовища

У Python імена файлів, аргументи командного рядка та змінні середовища представлені за допомогою рядкового типу. У деяких системах декодування цих рядків у та з байтів є необхідним перед передачею їх в операційну систему. Python використовує filesystem encoding and error handler для виконання цього перетворення (див. `sys.getfilesystemencoding()`).

filesystem encoding and error handler налаштовуються під час запуску Python за допомогою функції `PyConfig_Read()`: див. `filesystem_encoding` і `filesystem_errors` члени `PyConfig`.

Змінено в версії 3.1: On some systems, conversion using the file system encoding may fail. In this case, Python uses the surrogateescape encoding error handler, which means that undecodable bytes are replaced by a Unicode character U+DCxx on decoding, and these are again translated to the original byte on encoding.

кодування файлової системи має гарантувати успішне декодування всіх байтів нижче 128. Якщо кодування файлової системи не забезпечує цю гарантію, функції API можуть викликати `UnicodeError`.

Дивіться також locale encoding.

## Режим Python UTF-8

Added in version 3.7: Дивіться PEP 540 для більш детальної інформації.

Змінено в версії 3.15: Python UTF-8 mode is now enabled by default (PEP 686). It may be disabled with by setting `PYTHONUTF8=0` as an environment variable or by using the `-X utf8=0` command line option.

Режим Python UTF-8 ігнорує кодування locale encoding і змушує використовувати кодування UTF-8:

- Використовуйте UTF-8 як кодування файлової системи.

- `sys.getfilesystemencoding()` returns `'utf-8'`.

- `locale.getpreferredencoding()` returns `'utf-8'` (the do_setlocale argument has no effect).

- `sys.stdin`, `sys.stdout` і `sys.stderr` використовують UTF-8 як кодування тексту з `surrogateescape` обробником помилок увімкнено для `sys.stdin` і `sys.stdout` (`sys.stderr` продовжує використовувати `backslashreplace`, як це робиться в режимі з урахуванням локалі за замовчуванням)

- On Unix, `os.device_encoding()` returns `'utf-8'` rather than the device encoding.

Зауважте, що стандартні параметри потоку в режимі UTF-8 можна замінити `PYTHONIOENCODING` (так само, як вони можуть бути в режимі з урахуванням локалі за замовчуванням).

Як наслідок змін у цих API нижчого рівня, інші API вищого рівня також демонструють іншу поведінку за замовчуванням:

- Аргументи командного рядка, змінні середовища та імена файлів декодуються в текст за допомогою кодування UTF-8.

- `os.fsdecode()` and `os.fsencode()` use the UTF-8 encoding.

- `open()`, `io.open()`, and `codecs.open()` use the UTF-8 encoding by default. However, they still use the strict error handler by default so that attempting to open a binary file in text mode is likely to raise an exception rather than producing nonsense data.

The Python UTF-8 Mode is enabled by default. It can be disabled using the `-X utf8=0` command line option or the `PYTHONUTF8=0` environment variable. The Python UTF-8 Mode can only be disabled at Python startup. Its value can be read from `sys.flags.utf8_mode`.

If the UTF-8 mode is disabled, the interpreter defaults to using the current locale settings, unless the current locale is identified as a legacy ASCII-based locale (as described for `PYTHONCOERCECLOCALE`), and locale coercion is either disabled or fails. In such legacy locales, the interpreter will default to enabling UTF-8 mode unless explicitly instructed not to do so.

Дивіться також режим UTF-8 у Windows і filesystem encoding and error handler.

## Параметри процесу

Ці функції та елементи даних надають інформацію та діють щодо поточного процесу та користувача.

os.ctermid()

  Повертає ім’я файлу, що відповідає керуючому терміналу процесу.

  Availability: Unix, not WASI.

os.environ

  Об’єкт mapping, де ключі та значення є рядками, які представляють середовище процесу. Наприклад, `environ['HOME']` є шляхом до вашого домашнього каталогу (на деяких платформах) і еквівалентний `getenv("HOME")` в C.

  This mapping is captured the first time the `os` module is imported, typically during Python startup as part of processing `site.py`. Changes to the environment made after this time are not reflected in `os.environ`, except for changes made by modifying `os.environ` directly.

  Це відображення можна використовувати для зміни середовища, а також запиту середовища. `putenv()` буде викликано автоматично, коли відображення буде змінено.

  В Unix ключі та значення використовують `sys.getfilesystemencoding()` і `'surrogateescape'` обробник помилок. Використовуйте `environb`, якщо ви хочете використати інше кодування.

  On Windows, the keys are converted to uppercase. This also applies when getting, setting, or deleting an item. For example, `environ['monty'] = 'python'` maps the key `'MONTY'` to the value `'python'`.

  Примітка

  Безпосередній виклик `putenv()` не змінює `os.environ`, тому краще змінити `os.environ`.

  Примітка

  On some platforms, including FreeBSD and macOS, setting `environ` may cause memory leaks. Refer to the system documentation for `putenv()`.

  You can delete items in this mapping to unset environment variables. `unsetenv()` will be called automatically when an item is deleted from `os.environ`, and when one of the `pop()` or `clear()` methods is called.

  Дивись також

  The `os.reload_environ()` function.

  Змінено в версії 3.9: Оновлено для підтримки операторів злиття (`|`) і оновлення (`|=`) PEP 584.

os.environb

  Байтова версія `environ`: об’єкт mapping, де і ключі, і значення є об’єктами `bytes`, що представляють середовище процесу. `environ` і `environb` синхронізуються (модифікація `environb` оновлює `environ`, і навпаки).

  `environb` is only available if `supports_bytes_environ` is `True`.

  Added in version 3.2.

  Змінено в версії 3.9: Оновлено для підтримки операторів злиття (`|`) і оновлення (`|=`) PEP 584.

os.reload_environ()

  The `os.environ` and `os.environb` mappings are a cache of environment variables at the time that Python started. As such, changes to the current process environment are not reflected if made outside Python, or by `os.putenv()` or `os.unsetenv()`. Use `os.reload_environ()` to update `os.environ` and `os.environb` with any such changes to the current process environment.

  Попередження

  This function is not thread-safe. Calling it while the environment is being modified in an other thread is an undefined behavior. Reading from `os.environ` or `os.environb`, or calling `os.getenv()` while reloading, may return an empty result.

  Added in version 3.14.

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

  Ці функції описані в Файли та каталоги.

os.fsencode(filename)

  Закодуйте path-like ім’я файлу до filesystem encoding and error handler; повертає `bytes` без змін.

  `fsdecode()` є зворотною функцією.

  Added in version 3.2.

  Змінено в версії 3.6: Додано підтримку прийому об’єктів, що реалізують інтерфейс `os.PathLike`.

os.fsdecode(filename)

  Декодуйте path-like filename з filesystem encoding and error handler; повертає `str` без змін.

  `fsencode()` є зворотною функцією.

  Added in version 3.2.

  Змінено в версії 3.6: Додано підтримку прийому об’єктів, що реалізують інтерфейс `os.PathLike`.

os.fspath(path)

  Повертає представлення файлової системи шляху.

  Якщо передано `str` або `bytes`, воно повертається без змін. В іншому випадку викликається `__fspath__()` і повертається його значення, якщо це об’єкт `str` або `bytes`. У всіх інших випадках виникає `TypeError`.

  Added in version 3.6.

class os.PathLike

  abstract base class для об’єктів, що представляють шлях файлової системи, напр. `pathlib.PurePath`.

  Added in version 3.6.

  abstractmethod __fspath__()

    Повертає представлення шляху файлової системи до об’єкта.

    Метод має повертати лише об’єкт `str` або `bytes`, з перевагою для `str`.

os.getenv(key, default=None)

  Return the value of the environment variable key as a string if it exists, or default if it doesn’t. key is a string. Note that since `getenv()` uses `os.environ`, the mapping of `getenv()` is similarly also captured on import, and the function may not reflect future environment changes.

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

  Availability: Unix, Windows.

os.getenvb(key, default=None)

  Return the value of the environment variable key as bytes if it exists, or default if it doesn’t. key must be bytes. Note that since `getenvb()` uses `os.environb`, the mapping of `getenvb()` is similarly also captured on import, and the function may not reflect future environment changes.

  `getenvb()` is only available if `supports_bytes_environ` is `True`.

  Availability: Unix.

  Added in version 3.2.

os.get_exec_path(env=None)

  Повертає список каталогів, у яких здійснюватиметься пошук іменованого виконуваного файлу, схожого на оболонку, під час запуску процесу. env, якщо вказано, має бути словником змінної середовища для пошуку ШЛЯХУ. За умовчанням, коли env має значення `None`, використовується `environ`.

  Added in version 3.2.

os.getegid()

  Повертає ефективний ідентифікатор групи поточного процесу. Це відповідає біту «set id» у файлі, який виконується в поточному процесі.

  Availability: Unix, not WASI.

os.geteuid()

  Повернути ефективний ідентифікатор користувача поточного процесу.

  Availability: Unix, not WASI.

os.getgid()

  Повертає справжній ідентифікатор групи поточного процесу.

  Availability: Unix.

  The function is a stub on WASI, see WebAssembly platforms for more information.

os.getgrouplist(user, group, /)

  Return list of group ids that user belongs to. If group is not in the list, it is included; typically, group is specified as the group ID field from the password record for user, because that group ID will otherwise be potentially omitted.

  Availability: Unix, not WASI.

  Added in version 3.3.

os.getgroups()

  Повернути список ідентифікаторів додаткових груп, пов’язаних із поточним процесом.

  Availability: Unix, not WASI.

  Примітка

  On macOS, `getgroups()` behavior differs somewhat from other Unix platforms. If the Python interpreter was built with a deployment target of `10.5` or earlier, `getgroups()` returns the list of effective group ids associated with the current user process; this list is limited to a system-defined number of entries, typically 16, and may be modified by calls to `setgroups()` if suitably privileged. If built with a deployment target greater than `10.5`, `getgroups()` returns the current group access list for the user associated with the effective user id of the process; the group access list may change over the lifetime of the process, it is not affected by calls to `setgroups()`, and its length is not limited to 16. The deployment target value can be obtained with `sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')`.

os.getlogin()

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

  Availability: Unix, Windows, not WASI.

os.getpgid(pid)

  Повертає ідентифікатор групи процесу з ідентифікатором процесу pid. Якщо pid дорівнює 0, повертається ідентифікатор групи поточного процесу.

  Availability: Unix, not WASI.

os.getpgrp()

  Повертає ідентифікатор поточної групи процесів.

  Availability: Unix, not WASI.

os.getpid()

  Повернути ідентифікатор поточного процесу.

  The function is a stub on WASI, see WebAssembly platforms for more information.

os.getppid()

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

  Availability: Unix, Windows, not WASI.

  Змінено в версії 3.2: Додана підтримка Windows.

os.getpriority(which, who)

  Отримати пріоритет планування програми. Значення which є одним із `PRIO_PROCESS`, `PRIO_PGRP` або `PRIO_USER`, і who інтерпретується відносно which (ідентифікатор процесу для `PRIO_PROCESS`, ідентифікатор групи процесів для `PRIO_PGRP` та ідентифікатор користувача для `PRIO_USER`). Нульове значення для who позначає (відповідно) викликаючий процес, групу процесів викликаючого процесу або справжній ідентифікатор користувача викликаючого процесу.

  Availability: Unix, not WASI.

  Added in version 3.3.

os.PRIO_PROCESS
os.PRIO_PGRP
os.PRIO_USER

  Параметри для функцій `getpriority()` і `setpriority()`.

  Availability: Unix, not WASI.

  Added in version 3.3.

os.PRIO_DARWIN_THREAD
os.PRIO_DARWIN_PROCESS
os.PRIO_DARWIN_BG
os.PRIO_DARWIN_NONUI

  Параметри для функцій `getpriority()` і `setpriority()`.

  Availability: macOS

  Added in version 3.12.

os.getresuid()

  Повертає кортеж (ruid, euid, suid), що позначає справжні, ефективні та збережені ідентифікатори користувачів поточного процесу.

  Availability: Unix, not WASI.

  Added in version 3.2.

os.getresgid()

  Повертає кортеж (rgid, egid, sgid), що позначає справжні, ефективні та збережені ідентифікатори груп поточного процесу.

  Availability: Unix, not WASI.

  Added in version 3.2.

os.getuid()

  Повертає справжній ідентифікатор користувача поточного процесу.

  Availability: Unix.

  The function is a stub on WASI, see WebAssembly platforms for more information.

os.initgroups(username, gid, /)

  Call the system `initgroups()` to initialize the group access list with all of the groups of which the specified username is a member, plus the specified group id.

  Availability: Unix, not WASI, not Android.

  Added in version 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` у своїх реалізаціях.

  See also the `os.reload_environ()` function.

  Примітка

  On some platforms, including FreeBSD and macOS, setting `environ` may cause memory leaks. Refer to the system documentation for `putenv()`.

  Викликає подію аудиту `os.putenv` з аргументами `key`, `value`.

  Змінено в версії 3.9: Тепер функція доступна завжди.

os.setegid(egid, /)

  Установіть ефективний ідентифікатор групи поточного процесу.

  Availability: Unix, not WASI, not Android.

os.seteuid(euid, /)

  Встановити ефективний ідентифікатор користувача поточного процесу.

  Availability: Unix, not WASI, not Android.

os.setgid(gid, /)

  Встановіть ідентифікатор групи поточного процесу.

  Availability: Unix, not WASI, not Android.

os.setgroups(groups, /)

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

  Availability: Unix, not WASI.

  Примітка

  У macOS довжина groups не може перевищувати визначену системою максимальну кількість ефективних ідентифікаторів груп, як правило, 16. Перегляньте документацію для `getgroups()`, щоб дізнатися про випадки, коли він може не повернути той самий список груп, встановлений за допомогою виклику setgroups().

os.setns(fd, nstype=0)

  Reassociate the current thread with a Linux namespace. See the setns(2) and namespaces(7) man pages for more details.

  If fd refers to a `/proc/pid/ns/` link, `setns()` reassociates the calling thread with the namespace associated with that link, and nstype may be set to one of the CLONE_NEW* constants to impose constraints on the operation (`0` means no constraints).

  Since Linux 5.8, fd may refer to a PID file descriptor obtained from `pidfd_open()`. In this case, `setns()` reassociates the calling thread into one or more of the same namespaces as the thread referred to by fd. This is subject to any constraints imposed by nstype, which is a bit mask combining one or more of the CLONE_NEW* constants, e.g. `setns(fd, os.CLONE_NEWUTS | os.CLONE_NEWPID)`. The caller’s memberships in unspecified namespaces are left unchanged.

  fd can be any object with a `fileno()` method, or a raw file descriptor.

  This example reassociates the thread with the `init` process’s network namespace:

      fd = os.open("/proc/1/ns/net", os.O_RDONLY)
      os.setns(fd, os.CLONE_NEWNET)
      os.close(fd)

  Availability: Linux >= 3.0 with glibc >= 2.14.

  Added in version 3.12.

  Дивись також

  The `unshare()` function.

os.setpgrp()

  Call the system call `setpgrp()` or `setpgrp(0, 0)` depending on which version is implemented (if any). See the Unix manual for the semantics.

  Availability: Unix, not WASI.

os.setpgid(pid, pgrp, /)

  Call the system call `setpgid()` to set the process group id of the process with id pid to the process group with id pgrp. See the Unix manual for the semantics.

  Availability: 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; нижчі пріоритети викликають більш сприятливе планування.

  Availability: Unix, not WASI.

  Added in version 3.3.

os.setregid(rgid, egid, /)

  Встановіть справжні та ефективні ідентифікатори груп поточного процесу.

  Availability: Unix, not WASI, not Android.

os.setresgid(rgid, egid, sgid, /)

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

  Availability: Unix, not WASI, not Android.

  Added in version 3.2.

os.setresuid(ruid, euid, suid, /)

  Встановіть справжні, ефективні та збережені ідентифікатори користувачів поточного процесу.

  Availability: Unix, not WASI, not Android.

  Added in version 3.2.

os.setreuid(ruid, euid, /)

  Встановіть справжні та ефективні ідентифікатори користувачів поточного процесу.

  Availability: Unix, not WASI, not Android.

os.getsid(pid, /)

  Call the system call `getsid()`. See the Unix manual for the semantics.

  Availability: Unix, not WASI.

os.setsid()

  Call the system call `setsid()`. See the Unix manual for the semantics.

  Availability: Unix, not WASI.

os.setuid(uid, /)

  Встановіть ідентифікатор користувача поточного процесу.

  Availability: Unix, not WASI, not Android.

os.strerror(code, /)

  Return the error message corresponding to the error code in code. On platforms where `strerror()` returns `NULL` when given an unknown error number, `ValueError` is raised.

os.supports_bytes_environ

  `True`, якщо рідний тип ОС середовища - байти (наприклад, `False` у Windows).

  Added in version 3.2.

os.umask(mask, /)

  Установіть поточну цифрову umask і поверніть попередню umask.

  The function is a stub on WASI, see WebAssembly platforms for more information.

os.uname()

  Повертає інформацію про поточну операційну систему. Значення, що повертається, є об’єктом із п’ятьма атрибутами:

  - `sysname` - назва операційної системи

  - `nodename` - ім’я машини в мережі (визначено реалізацією)

  - `release` - випуск операційної системи

  - `version` - версія операційної системи

  - `machine` - ідентифікатор обладнання

  Для зворотної сумісності цей об’єкт також можна ітерувати, ведучи себе як п’ять кортежів, що містять `sysname`, `nodename`, `release`, `version` і `machine` в такому порядку.

  Деякі системи скорочують `nodename` до 8 символів або до початкового компонента; кращий спосіб отримати ім’я хоста – `socket.gethostname()` або навіть `socket.gethostbyaddr(socket.gethostname())`.

  On macOS, iOS and Android, this returns the kernel name and version (i.e., `'Darwin'` on macOS and iOS; `'Linux'` on Android). `platform.uname()` can be used to get the user-facing operating system name and version on iOS and Android.

  Availability: Unix.

  Змінено в версії 3.3: Тип повернення змінено з кортежу на кортежний об’єкт з іменованими атрибутами.

os.unsetenv(key, /)

  Скасувати (видалити) змінну середовища з назвою key. Такі зміни в середовищі впливають на підпроцеси, запущені з `os.system()`, `popen()` або `fork()` і `execv()`.

  Видалення елементів у `os.environ` автоматично перетворюється на відповідний виклик `unsetenv()`; однак виклики `unsetenv()` не оновлюють `os.environ`, тому насправді краще видалити елементи `os.environ`.

  See also the `os.reload_environ()` function.

  Викликає подію аудиту `os.unsetenv` з аргументом `key`.

  Змінено в версії 3.9: Функція тепер доступна завжди і також доступна в Windows.

os.unshare(flags)

  Disassociate parts of the process execution context, and move them into a newly created namespace. See the unshare(2) man page for more details. The flags argument is a bit mask, combining zero or more of the CLONE_* constants, that specifies which parts of the execution context should be unshared from their existing associations and moved to a new namespace. If the flags argument is `0`, no changes are made to the calling process’s execution context.

  Availability: Linux >= 2.6.16.

  Added in version 3.12.

  Дивись також

  The `setns()` function.

Flags to the `unshare()` function, if the implementation supports them. See unshare(2) in the Linux manual for their exact effect and availability.

os.CLONE_FILES
os.CLONE_FS
os.CLONE_NEWCGROUP
os.CLONE_NEWIPC
os.CLONE_NEWNET
os.CLONE_NEWNS
os.CLONE_NEWPID
os.CLONE_NEWTIME
os.CLONE_NEWUSER
os.CLONE_NEWUTS
os.CLONE_SIGHAND
os.CLONE_SYSVSEM
os.CLONE_THREAD
os.CLONE_VM

## Створення файлового об’єкта

Ці функції створюють нові файлові об’єкти. (Див. також `open()` для відкриття дескрипторів файлів.)

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

  Повертає відкритий файловий об’єкт, підключений до файлового дескриптора fd. Це псевдонім вбудованої функції `open()` і приймає ті самі аргументи. Єдина відмінність полягає в тому, що перший аргумент `fdopen()` завжди має бути цілим числом.

## Операції файлового дескриптора

Ці функції працюють із потоками введення/виведення, на які посилаються за допомогою файлових дескрипторів.

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

Метод `fileno()` можна використовувати для отримання дескриптора файлу, пов’язаного з file object, коли це необхідно. Зауважте, що використання безпосередньо файлового дескриптора обійде методи файлового об’єкта, ігноруючи такі аспекти, як внутрішня буферизація даних.

os.close(fd)

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

  Примітка

  Ця функція призначена для низькорівневого вводу-виводу та має застосовуватися до дескриптора файлу, який повертає `os.open()` або `pipe()`. Щоб закрити «файловий об’єкт», повернутий вбудованою функцією `open()` або `popen()` або `fdopen()`, скористайтеся його методом `close()` .

os.closerange(fd_low, fd_high, /)

  Закрийте всі файлові дескриптори від fd_low (включно) до fd_high (виключно), ігноруючи помилки. Еквівалентно (але набагато швидше ніж):

      for fd in range(fd_low, fd_high):
          try:
              os.close(fd)
          except OSError:
              pass

os.copy_file_range(src, dst, count, offset_src=None, offset_dst=None)

  Copy count bytes from file descriptor src, starting from offset offset_src, to file descriptor dst, starting from offset offset_dst. If offset_src is `None`, then src is read from the current position; respectively for offset_dst.

  In Linux kernel older than 5.3, the files pointed to by src and dst must reside in the same filesystem, otherwise an `OSError` is raised with `errno` set to `errno.EXDEV`.

  This copy is done without the additional cost of transferring data from the kernel to user space and then back into the kernel. Additionally, some filesystems could implement extra optimizations, such as the use of reflinks (i.e., two or more inodes that share pointers to the same copy-on-write disk blocks; supported file systems include btrfs and XFS) and server-side copy (in the case of NFS).

  The function copies bytes between two file descriptors. Text options, like the encoding and the line ending, are ignored.

  Поверненим значенням є кількість скопійованих байтів. Це може бути менше запитаної суми.

  Примітка

  On Linux, `os.copy_file_range()` should not be used for copying a range of a pseudo file from a special filesystem like procfs and sysfs. It will always copy no bytes and return 0 as if the file was empty because of a known Linux kernel issue.

  Availability: Linux >= 4.5 with glibc >= 2.27.

  Added in version 3.8.

os.device_encoding(fd)

  Повертає рядок, що описує кодування пристрою, пов’язаного з fd, якщо він підключений до терміналу; інакше повертає `None`.

  В Unix, якщо ввімкнено Python UTF-8 Mode, поверніть `'UTF-8''` замість кодування пристрою.

  Змінено в версії 3.10: В Unix функція тепер реалізує режим Python UTF-8.

os.dup(fd, /)

  Повертає дублікат файлового дескриптора fd. Новий файловий дескриптор не успадковується.

  У Windows під час дублювання стандартного потоку (0: stdin, 1: stdout, 2: stderr) новий дескриптор файлу є inheritable.

  Availability: not WASI.

  Змінено в версії 3.4: Новий файловий дескриптор тепер не успадковується.

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

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

  Availability: not WASI.

  Змінено в версії 3.4: Додайте необов’язковий параметр inheritable.

  Змінено в версії 3.7: Повернути fd2 у разі успіху. Раніше завжди повертався `None`.

os.fchmod(fd, mode)

  Змініть режим файлу, заданий fd, на числовий режим. Перегляньте документацію для `chmod()`, щоб дізнатися про можливі значення mode. Починаючи з Python 3.3, це еквівалентно `os.chmod(fd, mode)`.

  Викликає подію аудиту `os.chmod` з аргументами `path`, `mode`, `dir_fd`.

  Availability: Unix, Windows.

  The function is limited on WASI, see WebAssembly platforms for more information.

  Змінено в версії 3.13: Added support on 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`.

  Availability: Unix.

  The function is limited on WASI, see WebAssembly platforms for more information.

os.fdatasync(fd)

  Примусовий запис файлу з файловим дескриптором fd на диск. Не примусово оновлювати метадані.

  Availability: Unix.

  Примітка

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

os.fpathconf(fd, name, /)

  Повертає інформацію про конфігурацію системи, що стосується відкритого файлу. name вказує значення конфігурації для отримання; це може бути рядок, який є назвою визначеного системного значення; ці назви вказані в ряді стандартів (POSIX.1, Unix 95, Unix 98 та інші). Деякі платформи також визначають додаткові імена. Імена, відомі головній операційній системі, наведено у словнику `pathconf_names`. Для змінних конфігурації, не включених до цього відображення, також допускається передача цілого числа для name.

  Якщо name є рядком і невідоме, виникає `ValueError`. Якщо певне значення для name не підтримується хост-системою, навіть якщо воно включено в `pathconf_names`, виникає `OSError` з `errno.EINVAL` для номера помилки .

  Починаючи з Python 3.3, це еквівалентно `os.pathconf(fd, name)`.

  Availability: Unix.

os.fstat(fd)

  Отримати статус дескриптора файлу fd. Повертає об’єкт `stat_result`.

  Починаючи з Python 3.3, це еквівалентно `os.stat(fd)`.

  Дивись також

  Функція `stat()`.

os.fstatvfs(fd, /)

  Повертає інформацію про файлову систему, яка містить файл, пов’язаний із файловим дескриптором fd, наприклад `statvfs()`. Починаючи з Python 3.3, це еквівалентно `os.statvfs(fd)`.

  Availability: Unix.

os.fsync(fd)

  Force write of file with filedescriptor fd to disk. On Unix, this calls the native `fsync()` function; on Windows, the MS `_commit()` function.

  Якщо ви починаєте з буферизованого file object Python f, спочатку виконайте `f.flush()`, а потім виконайте `os.fsync(f.fileno())`, щоб переконатися, що всі внутрішні буфери, пов’язані з f, записуються на диск.

  Availability: Unix, Windows.

os.ftruncate(fd, length, /)

  Обріжте файл, що відповідає файловому дескриптору fd, щоб він мав розмір не більше length байтів. Починаючи з Python 3.3, це еквівалентно `os.truncate(fd, length)`.

  Викликає подію аудиту `os.truncate` з аргументами `fd`, `length`.

  Availability: Unix, Windows.

  Змінено в версії 3.5: Додана підтримка Windows

os.get_blocking(fd, /)

  Отримати режим блокування дескриптора файлу: `False`, якщо встановлено прапорець `O_NONBLOCK`, `True`, якщо прапорець знято.

  Дивіться також `set_blocking()` і `socket.socket.setblocking()`.

  Availability: Unix, Windows.

  The function is limited on WASI, see WebAssembly platforms for more information.

  On Windows, this function is limited to pipes.

  Added in version 3.5.

  Змінено в версії 3.12: Added support for pipes on Windows.

os.grantpt(fd, /)

  Grant access to the slave pseudo-terminal device associated with the master pseudo-terminal device to which the file descriptor fd refers. The file descriptor fd is not closed upon failure.

  Calls the C standard library function `grantpt()`.

  Availability: Unix, not WASI.

  Added in version 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`.

  Availability: Unix.

  Added in version 3.3.

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

  Прапорці, які вказують, яку дію виконуватиме `lockf()`.

  Availability: Unix.

  Added in version 3.3.

os.login_tty(fd, /)

  Prepare the tty of which fd is a file descriptor for a new login session. Make the calling process a session leader; make the tty the controlling tty, the stdin, the stdout, and the stderr of the calling process; close fd.

  Availability: Unix, not WASI.

  Added in version 3.11.

os.lseek(fd, pos, whence, /)

  Set the current position of file descriptor fd to position pos, modified by whence, and return the new position in bytes relative to the start of the file. Valid values for whence are:

  - `SEEK_SET` or `0` – set pos relative to the beginning of the file

  - `SEEK_CUR` or `1` – set pos relative to the current file position

  - `SEEK_END` or `2` – set pos relative to the end of the file

  - `SEEK_HOLE` – set pos to the next data location, relative to pos

  - `SEEK_DATA` – set pos to the next data hole, relative to pos

  Змінено в версії 3.3: Add support for `SEEK_HOLE` and `SEEK_DATA`.

os.SEEK_SET
os.SEEK_CUR
os.SEEK_END

  Parameters to the `lseek()` function and the `seek()` method on file-like objects, for whence to adjust the file position indicator.

  `SEEK_SET`

    Adjust the file position relative to the beginning of the file.

  `SEEK_CUR`

    Adjust the file position relative to the current file position.

  `SEEK_END`

    Adjust the file position relative to the end of the file.

  Their values are 0, 1, and 2, respectively.

os.SEEK_HOLE
os.SEEK_DATA

  Parameters to the `lseek()` function and the `seek()` method on file-like objects, for seeking file data and holes on sparsely allocated files.

  `SEEK_DATA`

    Adjust the file offset to the next location containing data, relative to the seek position.

  `SEEK_HOLE`

    Adjust the file offset to the next location containing a hole, relative to the seek position. A hole is defined as a sequence of zeros.

  Примітка

  These operations only make sense for filesystems that support them.

  Availability: Linux >= 3.1, macOS, Unix

  Added in version 3.3.

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

  Відкрийте шлях до файлу та встановіть різні позначки відповідно до flags і, можливо, його режим відповідно до mode. Під час обчислення режиму поточне значення umask спочатку маскується. Повертає файловий дескриптор для щойно відкритого файлу. Новий файловий дескриптор не успадковується.

  For a description of the flag and mode values, see the C run-time documentation; flag constants (like `O_RDONLY` and `O_WRONLY`) are defined in the `os` module. In particular, on Windows adding `O_BINARY` is needed to open files in binary mode.

  Ця функція може підтримувати шляхи відносно дескрипторів каталогу з параметром dir_fd.

  Викликає подію аудиту `open` з аргументами `path`, `mode`, `flags`.

  Змінено в версії 3.4: Новий файловий дескриптор тепер не успадковується.

  Примітка

  Ця функція призначена для низькорівневого введення-виведення. Для звичайного використання використовуйте вбудовану функцію `open()`, яка повертає об’єкт file object з методами `read()` і `write()` (і набагато більше). Щоб обернути файловий дескриптор у файловий об’єкт, використовуйте `fdopen()`.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.5: Якщо системний виклик перервано, а обробник сигналу не викликає виключення, функція тепер повторює системний виклик замість того, щоб викликати виняток `InterruptedError` (перегляньте PEP 475 для обґрунтування).

  Змінено в версії 3.6: Приймає 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

  Наведені вище константи доступні в Unix і Windows.

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

  Наведені вище константи доступні лише в Unix.

  Змінено в версії 3.3: Додайте константу `O_CLOEXEC`.

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

  Наведені вище константи доступні лише у Windows.

os.O_EVTONLY
os.O_FSYNC
os.O_SYMLINK
os.O_NOFOLLOW_ANY

  Наведені вище константи доступні лише в macOS.

  Змінено в версії 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.

  Змінено в версії 3.4: Додайте `O_PATH` до систем, які його підтримують. Додайте `O_TMPFILE`, доступний лише на ядрі Linux 3.11 або новіших.

os.openpty()

  Відкрийте нову пару псевдотерміналів. Повертає пару файлових дескрипторів `(master, slave)` для pty і tty відповідно. Нові дескриптори файлів не успадковуються. Для (трохи) більш портативного підходу використовуйте модуль `pty`.

  Availability: Unix, not WASI.

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

os.pipe()

  Створіть трубу. Повертає пару файлових дескрипторів `(r, w)`, які можна використовувати для читання та запису відповідно. Новий файловий дескриптор не успадковується.

  Availability: Unix, Windows.

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

os.pipe2(flags, /)

  Створіть трубу з прапорцями, встановленими атомарно. прапорці можуть бути створені шляхом об’єднання одного або кількох із цих значень `O_NONBLOCK`, `O_CLOEXEC`. Повертає пару файлових дескрипторів `(r, w)`, які можна використовувати для читання та запису відповідно.

  Availability: Unix, not WASI.

  Added in version 3.3.

os.posix_fallocate(fd, offset, len, /)

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

  Availability: Unix.

  Added in version 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`.

  Availability: Unix.

  Added in version 3.3.

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

  Прапорці, які можна використовувати в advice у `posix_fadvise()`, які визначають шаблон доступу, який, імовірно, буде використаний.

  Availability: Unix.

  Added in version 3.3.

os.pread(fd, n, offset, /)

  Прочитати щонайбільше n байт із файлового дескриптора fd у позиції offset, залишаючи зміщення файлу незмінним.

  Повертає байтовий рядок, що містить прочитані байти. Якщо досягнуто кінця файлу, на який посилається fd, повертається порожній об’єкт bytes.

  Availability: Unix.

  Added in version 3.3.

os.posix_openpt(oflag, /)

  Open and return a file descriptor for a master pseudo-terminal device.

  Calls the C standard library function `posix_openpt()`. The oflag argument is used to set file status flags and file access modes as specified in the manual page of `posix_openpt()` of your system.

  The returned file descriptor is non-inheritable. If the value `O_CLOEXEC` is available on the system, it is added to oflag.

  Availability: Unix, not WASI.

  Added in version 3.13.

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

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

  Аргумент flags містить порозрядне АБО нуля або більше таких прапорів:

  - `RWF_HIPRI`

  - `RWF_NOWAIT`

  - `RWF_DONTCACHE`

  Повертає загальну кількість фактично прочитаних байтів, яка може бути меншою за загальну ємність усіх об’єктів.

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

  Поєднайте функціональні можливості `os.readv()` і `os.pread()`.

  Availability: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1.

  Using flags requires Linux >= 4.6.

  Added in version 3.7.

os.RWF_NOWAIT

  Не чекайте даних, які доступні не відразу. Якщо вказано цей прапорець, системний виклик повернеться миттєво, якщо йому доведеться прочитати дані з резервного сховища або дочекатися блокування.

  If some data was successfully read, it will return the number of bytes read. If no bytes were read, it will return `-1` and set errno to `errno.EAGAIN`.

  Availability: Linux >= 4.14.

  Added in version 3.7.

os.RWF_HIPRI

  Високий пріоритет читання/запису. Дозволяє файловим системам на основі блоків використовувати опитування пристрою, що забезпечує меншу затримку, але може використовувати додаткові ресурси.

  Наразі в Linux цю функцію можна використовувати лише для дескриптора файлу, відкритого за допомогою позначки `O_DIRECT`.

  Availability: Linux >= 4.6.

  Added in version 3.7.

os.RWF_DONTCACHE

  Use uncached buffered IO.

  Availability: Linux >= 6.14

  Added in version 3.15.

os.RWF_ATOMIC

  Write data atomically. Requires alignment to the device’s atomic write unit.

  Availability: Linux >= 6.11

  Added in version 3.15.

os.ptsname(fd, /)

  Return the name of the slave pseudo-terminal device associated with the master pseudo-terminal device to which the file descriptor fd refers. The file descriptor fd is not closed upon failure.

  Calls the reentrant C standard library function `ptsname_r()` if it is available; otherwise, the C standard library function `ptsname()`, which is not guaranteed to be thread-safe, is called.

  Availability: Unix, not WASI.

  Added in version 3.13.

os.pwrite(fd, str, offset, /)

  Запишіть байтовий рядок у str у файловий дескриптор fd у позиції offset, залишаючи зміщення файлу без змін.

  Повертає кількість фактично записаних байтів.

  Availability: Unix.

  Added in version 3.3.

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

  Write the buffers contents to file descriptor fd at an offset offset, leaving the file offset unchanged. buffers must be a sequence of bytes-like objects. Buffers are processed in array order. Entire contents of the first buffer is written before proceeding to the second, and so on.

  Аргумент flags містить порозрядне АБО нуля або більше таких прапорів:

  - `RWF_DSYNC`

  - `RWF_SYNC`

  - `RWF_APPEND`

  - `RWF_DONTCACHE`

  - `RWF_ATOMIC`

  Повертає загальну кількість фактично записаних байтів.

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

  Поєднайте функції `os.writev()` і `os.pwrite()`.

  Availability: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1.

  Using flags requires Linux >= 4.6.

  Added in version 3.7.

os.RWF_DSYNC

  Надайте еквівалент для кожного запису прапора `O_DSYNC` `os.open()`. Цей ефект прапора застосовується лише до діапазону даних, записаного системним викликом.

  Availability: Linux >= 4.7.

  Added in version 3.7.

os.RWF_SYNC

  Надайте еквівалент для кожного запису прапора `O_SYNC` `os.open()`. Цей ефект прапора застосовується лише до діапазону даних, записаного системним викликом.

  Availability: Linux >= 4.7.

  Added in version 3.7.

os.RWF_APPEND

  Надайте еквівалент для кожного запису прапора `O_APPEND` `os.open()`. Цей прапор має значення лише для `os.pwritev()`, і його дія стосується лише діапазону даних, записаного системним викликом. Аргумент offset не впливає на операцію запису; дані завжди додаються в кінець файлу. Однак, якщо аргумент offset дорівнює `-1`, поточний файл offset оновлюється.

  Availability: Linux >= 4.16.

  Added in version 3.10.

os.read(fd, n, /)

  Прочитати щонайбільше n байт із файлового дескриптора fd.

  Повертає байтовий рядок, що містить прочитані байти. Якщо досягнуто кінця файлу, на який посилається fd, повертається порожній об’єкт bytes.

  Примітка

  Ця функція призначена для низькорівневого вводу-виводу та має застосовуватися до дескриптора файлу, який повертає `os.open()` або `pipe()`. Щоб прочитати «файловий об’єкт», повернутий вбудованою функцією `open()` або `popen()` або `fdopen()`, або `sys.stdin`, використовуйте його `read()` або `readline()` методи.

  Змінено в версії 3.5: Якщо системний виклик перервано, а обробник сигналу не викликає виключення, функція тепер повторює системний виклик замість того, щоб викликати виняток `InterruptedError` (перегляньте PEP 475 для обґрунтування).

os.readinto(fd, buffer, /)

  Read from a file descriptor fd into a mutable buffer object buffer.

  The buffer should be mutable and bytes-like. On success, returns the number of bytes read. Less bytes may be read than the size of the buffer. The underlying system call will be retried when interrupted by a signal, unless the signal handler raises an exception. Other errors will not be retried and an error will be raised.

  Returns 0 if fd is at end of file or if the provided buffer has length 0 (which can be used to check for errors without reading data). Never returns negative.

  Примітка

  This function is intended for low-level I/O and must be applied to a file descriptor as returned by `os.open()` or `os.pipe()`. To read a «file object» returned by the built-in function `open()`, or `sys.stdin`, use its member functions, for example `io.BufferedIOBase.readinto()`, `io.BufferedIOBase.read()`, or `io.TextIOBase.read()`

  Added in version 3.14.

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.

  Availability: Unix, not WASI.

  Примітка

  Щоб отримати обгортку вищого рівня `sendfile()`, перегляньте `socket.socket.sendfile()`.

  Added in version 3.3.

  Змінено в версії 3.9: Параметри out і in перейменовано на out_fd і in_fd.

os.SF_NODISKIO
os.SF_MNOWAIT
os.SF_SYNC

  Параметри функції `sendfile()`, якщо реалізація їх підтримує.

  Availability: Unix, not WASI.

  Added in version 3.3.

os.SF_NOCACHE

  Parameter to the `sendfile()` function, if the implementation supports it. The data won’t be cached in the virtual memory and will be freed afterwards.

  Availability: Unix, not WASI.

  Added in version 3.11.

os.set_blocking(fd, blocking, /)

  Встановити режим блокування вказаного файлового дескриптора. Установіть прапорець `O_NONBLOCK`, якщо блокування має значення `False`, зніміть прапорець в іншому випадку.

  Дивіться також `get_blocking()` і `socket.socket.setblocking()`.

  Availability: Unix, Windows.

  The function is limited on WASI, see WebAssembly platforms for more information.

  On Windows, this function is limited to pipes.

  Added in version 3.5.

  Змінено в версії 3.12: Added support for pipes on Windows.

os.splice(src, dst, count, offset_src=None, offset_dst=None, flags=0)

  Transfer count bytes from file descriptor src, starting from offset offset_src, to file descriptor dst, starting from offset offset_dst.

  The splicing behaviour can be modified by specifying a flags value. Any of the following variables may used, combined using bitwise OR (the `|` operator):

  - If `SPLICE_F_MOVE` is specified, the kernel is asked to move pages instead of copying, but pages may still be copied if the kernel cannot move the pages from the pipe.

  - If `SPLICE_F_NONBLOCK` is specified, the kernel is asked to not block on I/O. This makes the splice pipe operations nonblocking, but splice may nevertheless block because the spliced file descriptors may block.

  - If `SPLICE_F_MORE` is specified, it hints to the kernel that more data will be coming in a subsequent splice.

  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 be `None`. The files pointed to by src and dst must reside in the same filesystem, otherwise an `OSError` is raised with `errno` set to `errno.EXDEV`.

  Ця копія виконується без додаткових витрат на передачу даних із ядра в простір користувача, а потім назад у ядро. Крім того, деякі файлові системи можуть реалізувати додаткові оптимізації. Копіювання виконується так, ніби обидва файли відкриваються як двійкові.

  Після успішного завершення повертає кількість байтів, з’єднаних із каналом або з каналу. Повернене значення 0 означає кінець введення. Якщо src посилається на канал, це означає, що не було даних для передачі, і не було б сенсу блокувати, оскільки немає записувачів, підключених до кінця каналу для запису.

  Дивись також

  The splice(2) man page.

  Availability: Linux >= 2.6.17 with glibc >= 2.5

  Added in version 3.10.

os.SPLICE_F_MOVE
os.SPLICE_F_NONBLOCK
os.SPLICE_F_MORE

  Added in version 3.10.

os.readv(fd, buffers, /)

  Читання з файлового дескриптора fd у кілька змінних байт-подібних об’єктів буферів. Передайте дані в кожен буфер, доки він не заповниться, а потім перейдіть до наступного буфера в послідовності, щоб утримувати решту даних.

  Повертає загальну кількість фактично прочитаних байтів, яка може бути меншою за загальну ємність усіх об’єктів.

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

  Availability: Unix.

  Added in version 3.3.

os.tcgetpgrp(fd, /)

  Повертає групу процесів, пов’язану з терміналом, задану fd (дескриптор відкритого файлу, який повертає `os.open()`).

  Availability: Unix, not WASI.

os.tcsetpgrp(fd, pg, /)

  Встановіть групу процесів, пов’язану з терміналом, надану fd (дескриптор відкритого файлу, який повертає `os.open()`), на pg.

  Availability: Unix, not WASI.

os.ttyname(fd, /)

  Повертає рядок, який визначає термінальний пристрій, пов’язаний із файловим дескриптором fd. Якщо fd не пов’язано з термінальним пристроєм, виникає виняток.

  Availability: Unix.

os.unlockpt(fd, /)

  Unlock the slave pseudo-terminal device associated with the master pseudo-terminal device to which the file descriptor fd refers. The file descriptor fd is not closed upon failure.

  Calls the C standard library function `unlockpt()`.

  Availability: Unix, not WASI.

  Added in version 3.13.

os.write(fd, str, /)

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

  Повертає кількість фактично записаних байтів.

  Примітка

  Ця функція призначена для низькорівневого вводу-виводу та має застосовуватися до дескриптора файлу, який повертає `os.open()` або `pipe()`. Щоб записати «файловий об’єкт», який повертає вбудована функція `open()` або `popen()` або `fdopen()`, або `sys.stdout` або `sys.stderr`, використовуйте його метод `write()`.

  Змінено в версії 3.5: Якщо системний виклик перервано, а обробник сигналу не викликає виключення, функція тепер повторює системний виклик замість того, щоб викликати виняток `InterruptedError` (перегляньте PEP 475 для обґрунтування).

os.writev(fd, buffers, /)

  Запишіть вміст buffers у файловий дескриптор fd. буфери мають бути послідовністю байт-подібних об’єктів. Буфери обробляються в порядку масиву. Весь вміст першого буфера записується перед переходом до другого і так далі.

  Повертає загальну кількість фактично записаних байтів.

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

  Availability: Unix.

  Added in version 3.3.

### Запит розміру терміналу

Added in version 3.3.

os.get_terminal_size(fd=STDOUT_FILENO, /)

  Повертає розмір вікна терміналу як `(стовпці, рядки)`, кортеж типу `terminal_size`.

  Додатковий аргумент `fd` (за замовчуванням `STDOUT_FILENO` або стандартний вивід) визначає, який дескриптор файлу слід запитувати.

  Якщо дескриптор файлу не підключено до терміналу, виникає `OSError`.

  `shutil.get_terminal_size()` — це функція високого рівня, яка зазвичай повинна використовуватися, `os.get_terminal_size` — це реалізація низького рівня.

  Availability: Unix, Windows.

class os.terminal_size

  Підклас кортежу, що містить `(стовпці, рядки)` розміру вікна терміналу.

  columns

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

  lines

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

### Успадкування файлових дескрипторів

Added in version 3.4.

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

On UNIX, non-inheritable file descriptors are closed in child processes at the execution of a new program, other file descriptors are inherited. Note that non-inheritable file descriptors are still inherited by child processes on `os.fork()`.

У Windows неуспадковані дескриптори та дескриптори файлів закриті в дочірніх процесах, за винятком стандартних потоків (дескриптори файлів 0, 1 і 2: stdin, stdout і stderr), які завжди успадковуються. За допомогою функцій `spawn*` успадковуються всі успадковані маркери та всі успадковані дескриптори файлів. За допомогою модуля `subprocess` усі файлові дескриптори, крім стандартних потоків, закриваються, а успадковані дескриптори успадковуються, лише якщо параметр close_fds має значення `False`.

On WebAssembly platforms, the file descriptor cannot be modified.

os.get_inheritable(fd, /)

  Отримайте позначку «успадкований» зазначеного файлового дескриптора (логічне значення).

os.set_inheritable(fd, inheritable, /)

  Встановіть прапорець «успадкований» для зазначеного файлового дескриптора.

os.get_handle_inheritable(handle, /)

  Отримайте прапор «успадкований» зазначеного маркера (логічне значення).

  Availability: Windows.

os.set_handle_inheritable(handle, inheritable, /)

  Встановіть прапорець «успадкований» для вказаного маркера.

  Availability: Windows.

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

На деяких платформах Unix багато з цих функцій підтримують одну або кілька таких функцій:

- specifying a file descriptor: Normally the path argument provided to functions in the `os` module must be a string specifying a file path. However, some functions now alternatively accept an open file descriptor for their path argument. The function will then operate on the file referred to by the descriptor. For POSIX systems, Python will call the variant of the function prefixed with `f` (e.g. call `fchdir` instead of `chdir`).

  Ви можете перевірити, чи можна вказати шлях як дескриптор файлу для певної функції на вашій платформі за допомогою `os.supports_fd`. Якщо ця функція недоступна, її використання призведе до помилки `NotImplementedError`.

  Якщо функція також підтримує аргументи dir_fd або follow_symlinks, буде помилкою вказати один із них під час надання шляху як дескриптора файлу.

- paths relative to directory descriptors: If dir_fd is not `None`, it should be a file descriptor referring to a directory, and the path to operate on should be relative; path will then be relative to that directory. If the path is absolute, dir_fd is ignored. For POSIX systems, Python will call the variant of the function with an `at` suffix and possibly prefixed with `f` (e.g. call `faccessat` instead of `access`).

  Ви можете перевірити, чи підтримується dir_fd для певної функції на вашій платформі за допомогою `os.supports_dir_fd`. Якщо він недоступний, його використання призведе до помилки `NotImplementedError`.

- not following symlinks: If follow_symlinks is `False`, and the last element of the path to operate on is a symbolic link, the function will operate on the symbolic link itself rather than the file pointed to by the link. For POSIX systems, Python will call the `l...` variant of the function.

  Ви можете перевірити, чи підтримується 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`.

  Примітка

  Використовуючи `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()

  Примітка

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

  Змінено в версії 3.3: Додано параметри dir_fd, effective_ids і follow_symlinks.

  Змінено в версії 3.6: Приймає 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`.

  Змінено в версії 3.3: Додано підтримку вказівки шляху як дескриптора файлу на деяких платформах.

  Змінено в версії 3.6: Приймає path-like object.

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

  Встановіть прапорці шляху на числові прапорці. flags може приймати комбінацію (порозрядне АБО) таких значень (як визначено в модулі `stat`):

  - `stat.UF_NODUMP`

  - `stat.UF_IMMUTABLE`

  - `stat.UF_APPEND`

  - `stat.UF_OPAQUE`

  - `stat.UF_NOUNLINK`

  - `stat.UF_COMPRESSED`

  - `stat.UF_HIDDEN`

  - `stat.SF_ARCHIVED`

  - `stat.SF_IMMUTABLE`

  - `stat.SF_APPEND`

  - `stat.SF_NOUNLINK`

  - `stat.SF_SNAPSHOT`

  Ця функція підтримує неперехід за символічними посиланнями.

  Викликає подію аудиту `os.chflags` з аргументами `path`, `flags`.

  Availability: Unix, not WASI.

  Змінено в версії 3.3: Added the follow_symlinks parameter.

  Змінено в версії 3.6: Приймає path-like object.

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

  Змініть режим шляху на числовий режим. mode може приймати одне з наступних значень (як визначено в модулі `stat`) або їх комбінації порозрядними АБО:

  - `stat.S_ISUID`

  - `stat.S_ISGID`

  - `stat.S_ENFMT`

  - `stat.S_ISVTX`

  - `stat.S_IREAD`

  - `stat.S_IWRITE`

  - `stat.S_IEXEC`

  - `stat.S_IRWXU`

  - `stat.S_IRUSR`

  - `stat.S_IWUSR`

  - `stat.S_IXUSR`

  - `stat.S_IRWXG`

  - `stat.S_IRGRP`

  - `stat.S_IWGRP`

  - `stat.S_IXGRP`

  - `stat.S_IRWXO`

  - `stat.S_IROTH`

  - `stat.S_IWOTH`

  - `stat.S_IXOTH`

  Ця функція може підтримувати зазначення дескриптора файлу, шляхи відносно дескрипторів каталогу та неперехід за символічними посиланнями.

  Примітка

  Although Windows supports `chmod()`, you can only set the file’s read-only flag with it (via the `stat.S_IWRITE` and `stat.S_IREAD` constants or a corresponding integer value). All other bits are ignored. The default value of follow_symlinks is `False` on Windows.

  The function is limited on WASI, see WebAssembly platforms for more information.

  Викликає подію аудиту `os.chmod` з аргументами `path`, `mode`, `dir_fd`.

  Змінено в версії 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу, а також аргументів dir_fd і follow_symlinks.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.13: Added support for a file descriptor and the follow_symlinks argument on 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`.

  Availability: Unix.

  The function is limited on WASI, see WebAssembly platforms for more information.

  Змінено в версії 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу, а також аргументів dir_fd і follow_symlinks.

  Змінено в версії 3.6: Підтримує path-like object.

os.chroot(path)

  Змініть кореневий каталог поточного процесу на шлях.

  Availability: Unix, not WASI, not Android.

  Змінено в версії 3.6: Приймає path-like object.

os.fchdir(fd)

  Змініть поточний робочий каталог на каталог, представлений дескриптором файлу fd. Дескриптор має посилатися на відкритий каталог, а не на відкритий файл. Починаючи з Python 3.3, це еквівалентно `os.chdir(fd)`.

  Викликає подію аудиту `os.chdir` з аргументом `path`.

  Availability: Unix.

os.getcwd()

  Повертає рядок, що представляє поточний робочий каталог.

os.getcwdb()

  Повертає байтовий рядок, що представляє поточний робочий каталог.

  Змінено в версії 3.8: Функція тепер використовує кодування UTF-8 у Windows, а не кодову сторінку ANSI: див. PEP 529 для обґрунтування. Ця функція більше не підтримується в Windows.

os.lchflags(path, flags)

  Встановіть прапорці path на числові flags, наприклад `chflags()`, але не переходьте за символічними посиланнями. Починаючи з Python 3.3, це еквівалентно `os.chflags(path, flags, follow_symlinks=False)`.

  Викликає подію аудиту `os.chflags` з аргументами `path`, `flags`.

  Availability: Unix, not WASI.

  Змінено в версії 3.6: Приймає path-like object.

os.lchmod(path, mode)

  Змініть режим шляху на числовий режим. Якщо шлях є символічним посиланням, це впливає на символічне посилання, а не на ціль. Перегляньте документацію для `chmod()`, щоб дізнатися про можливі значення mode. Починаючи з Python 3.3, це еквівалентно `os.chmod(path, mode, follow_symlinks=False)`.

  `lchmod()` is not part of POSIX, but Unix implementations may have it if changing the mode of symbolic links is supported.

  Викликає подію аудиту `os.chmod` з аргументами `path`, `mode`, `dir_fd`.

  Availability: Unix, Windows, not Linux, FreeBSD >= 1.3, NetBSD >= 1.3, not OpenBSD

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.13: Added support on 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`.

  Availability: Unix.

  Змінено в версії 3.6: Приймає 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. The default value of follow_symlinks is `False` on Windows.

  Викликає подію аудиту `os.link` з аргументами `src`, `dst`, `src_dir_fd`, `dst_dir_fd`.

  Availability: Unix, Windows.

  Змінено в версії 3.2: Додана підтримка Windows.

  Змінено в версії 3.3: Added the src_dir_fd, dst_dir_fd, and follow_symlinks parameters.

  Змінено в версії 3.6: Приймає path-like object для src і dst.

os.listdir(path='.')

  Повертає список, що містить імена записів у каталозі, заданому шляхом. Список розташований у довільному порядку й не містить спеціальних записів `'.''` і `'..''`, навіть якщо вони присутні в каталозі. Якщо файл видалено з каталогу або додано до нього під час виклику цієї функції, не вказано, чи буде включено ім’я цього файлу.

  path може бути path-like object. Якщо path має тип `bytes` (прямо чи опосередковано через інтерфейс `PathLike`), повернуті імена файлів також будуть типу `bytes`; за всіх інших обставин вони будуть типу `str`.

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

  Викликає подію аудиту `os.listdir` з аргументом `path`.

  Примітка

  Щоб закодувати `str` імена файлів у `байти`, використовуйте `fsencode()`.

  Дивись також

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

  Змінено в версії 3.2: Параметр path став необов’язковим.

  Змінено в версії 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу.

  Змінено в версії 3.6: Приймає path-like object.

os.listdrives()

  Return a list containing the names of drives on a Windows system.

  A drive name typically looks like `'C:\\'`. Not every drive name will be associated with a volume, and some may be inaccessible for a variety of reasons, including permissions, network connectivity or missing media. This function does not test for access.

  May raise `OSError` if an error occurs collecting the drive names.

  Raises an auditing event `os.listdrives` with no arguments.

  Availability: Windows

  Added in version 3.12.

os.listmounts(volume)

  Return a list containing the mount points for a volume on a Windows system.

  volume must be represented as a GUID path, like those returned by `os.listvolumes()`. Volumes may be mounted in multiple locations or not at all. In the latter case, the list will be empty. Mount points that are not associated with a volume will not be returned by this function.

  The mount points return by this function will be absolute paths, and may be longer than the drive name.

  Raises `OSError` if the volume is not recognized or if an error occurs collecting the paths.

  Raises an auditing event `os.listmounts` with argument `volume`.

  Availability: Windows

  Added in version 3.12.

os.listvolumes()

  Return a list containing the volumes in the system.

  Volumes are typically represented as a GUID path that looks like `\\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\`. Files can usually be accessed through a GUID path, permissions allowing. However, users are generally not familiar with them, and so the recommended use of this function is to retrieve mount points using `os.listmounts()`.

  May raise `OSError` if an error occurs collecting the volumes.

  Raises an auditing event `os.listvolumes` with no arguments.

  Availability: Windows

  Added in version 3.12.

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

  Perform the equivalent of an `lstat()` system call on the given path. Similar to `stat()`, but does not follow symbolic links. Return a `stat_result` object.

  На платформах, які не підтримують символічні посилання, це псевдонім для `stat()`.

  Починаючи з Python 3.3, це еквівалентно `os.stat(path, dir_fd=dir_fd, follow_symlinks=False)`.

  Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.

  Дивись також

  Функція `stat()`.

  Змінено в версії 3.2: Додано підтримку символічних посилань Windows 6.0 (Vista).

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.8: У Windows тепер відкриваються точки повторного аналізу, які представляють інший шлях (сурогати імен), включаючи символічні посилання та з’єднання каталогів. Інші типи точок повторного аналізу вирішуються операційною системою як для `stat()`.

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

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

  Якщо каталог уже існує, виникає `FileExistsError`. Якщо батьківський каталог у шляху не існує, виникає `FileNotFoundError`.

  У деяких системах режим ігнорується. Там, де воно використовується, поточне значення umask спочатку маскується. Якщо встановлено інші біти, ніж останні 9 (тобто останні 3 цифри вісімкового представлення режиму), їхнє значення залежить від платформи. На деяких платформах вони ігноруються, і вам слід явно викликати `chmod()`, щоб встановити їх.

  On Windows, a mode of `0o700` is specifically handled to apply access control to the new directory such that only the current user and administrators have access. Other values of mode are ignored.

  Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.

  Також є можливість створювати тимчасові каталоги; подивіться функцію `tempfile.mkdtemp()` модуля `tempfile`.

  Викликає подію аудиту `os.mkdir` з аргументами `path`, `mode`, `dir_fd`.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.13: Windows now handles a mode of `0o700`.

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

  Функція рекурсивного створення каталогу. Подібно до `mkdir()`, але створює всі каталоги середнього рівня, необхідні для того, щоб містити кінцевий каталог.

  The mode parameter is passed to `mkdir()` for creating the leaf directory; see the mkdir() description for how it is interpreted. To set the file permission bits of any newly created parent directories you can set the umask before invoking `makedirs()`. The file permission bits of existing parent directories are not changed.

  If exist_ok is `False` (the default), a `FileExistsError` is raised if the target directory already exists.

  Примітка

  `makedirs()` заплутає, якщо елементи шляху, які потрібно створити, включають `pardir` (наприклад, «..» у системах UNIX).

  Ця функція правильно обробляє шляхи UNC.

  Викликає подію аудиту `os.mkdir` з аргументами `path`, `mode`, `dir_fd`.

  Змінено в версії 3.2: Added the exist_ok parameter.

  Змінено в версії 3.4.1: До Python 3.4.1, якщо exist_ok було `True` і каталог існував, `makedirs()` все одно викликав помилку, якщо mode не відповідав режиму існуючого каталогу. Оскільки таку поведінку було неможливо реалізувати безпечно, її було видалено в Python 3.4.1. Див. bpo-21082.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.7: The mode argument no longer affects the file permission bits of newly created intermediate-level directories.

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

  Створіть FIFO (іменований канал) під назвою path із числовим режимом mode. Поточне значення umask спочатку маскується з режиму.

  Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.

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

  Availability: Unix, not WASI.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає path-like object.

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

  Create a filesystem node (file, device special file or named pipe) named path. mode specifies both the permissions to use and the type of node to be created, being combined (bitwise OR) with one of `stat.S_IFREG`, `stat.S_IFCHR`, `stat.S_IFBLK`, and `stat.S_IFIFO`. For `stat.S_IFCHR` and `stat.S_IFBLK`, device defines the newly created device special file (probably using `os.makedev()`), otherwise it is ignored.

  Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.

  Availability: Unix, not WASI.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає path-like object.

os.major(device, /)

  Extract the device major number from a raw device number (usually the `st_dev` or `st_rdev` field from `stat`).

os.minor(device, /)

  Extract the device minor number from a raw device number (usually the `st_dev` or `st_rdev` field from `stat`).

os.makedev(major, minor, /)

  Складіть необроблений номер пристрою з головного та другорядного номерів пристроїв.

os.NODEV

  Non-existent device.

  Added in version 3.15.

os.pathconf(path, name)

  Повертає інформацію про конфігурацію системи, що стосується названого файлу. name вказує значення конфігурації для отримання; це може бути рядок, який є назвою визначеного системного значення; ці назви вказані в ряді стандартів (POSIX.1, Unix 95, Unix 98 та інші). Деякі платформи також визначають додаткові імена. Імена, відомі головній операційній системі, наведено у словнику `pathconf_names`. Для змінних конфігурації, не включених до цього відображення, також допускається передача цілого числа для name.

  Якщо name є рядком і невідоме, виникає `ValueError`. Якщо певне значення для name не підтримується хост-системою, навіть якщо воно включено в `pathconf_names`, виникає `OSError` з `errno.EINVAL` для номера помилки .

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

  Availability: Unix.

  Змінено в версії 3.6: Приймає path-like object.

os.pathconf_names

  Словник зіставляє імена, прийняті `pathconf()` і `fpathconf()` до цілих значень, визначених для цих імен головною операційною системою. Це можна використовувати для визначення набору імен, відомих системі.

  Availability: Unix.

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

  Повертає рядок, що представляє шлях, на який вказує символічне посилання. Результатом може бути абсолютний або відносний шлях; якщо він відносний, його можна перетворити на абсолютний шлях за допомогою `os.path.join(os.path.dirname(path), result)`.

  Якщо шлях є рядковим об’єктом (прямо чи опосередковано через інтерфейс `PathLike`), результат також буде рядковим об’єктом, і виклик може викликати UnicodeDecodeError. Якщо шлях є об’єктом bytes (прямим чи опосередкованим), результатом буде об’єкт bytes.

  Ця функція також може підтримувати шляхи відносно дескрипторів каталогу.

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

  Availability: Unix, Windows.

  Змінено в версії 3.2: Додано підтримку символічних посилань Windows 6.0 (Vista).

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає path-like object в Unix.

  Змінено в версії 3.8: Приймає path-like object і об’єкт bytes у Windows.

  Додано підтримку для з’єднань каталогів і змінено, щоб повертати шлях підстановки (який зазвичай включає префікс `\\?\`), а не необов’язкове поле «назви для друку», яке поверталося раніше.

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

  Remove (delete) the file path. If path is a directory, an `OSError` is raised. Use `rmdir()` to remove directories. If the file does not exist, a `FileNotFoundError` is raised.

  Ця функція може підтримувати шляхи відносно дескрипторів каталогу.

  У Windows спроба видалити файл, який використовується, викликає виняток; в Unix запис каталогу видаляється, але сховище, виділене для файлу, не стає доступним, доки оригінальний файл більше не буде використовуватися.

  Ця функція семантично ідентична `unlink()`.

  Викликає подію аудиту `os.remove` з аргументами `path`, `dir_fd`.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає 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`.

  Змінено в версії 3.6: Приймає path-like object.

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

  Перейменуйте файл або каталог src на dst. Якщо dst існує, операція буде невдалою з підкласом `OSError` у кількох випадках:

  On Windows, if dst exists a `FileExistsError` is always raised. The operation may fail if src and dst are on different filesystems. Use `shutil.move()` to support moves to a different filesystem.

  В 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`.

  Змінено в версії 3.3: Added the src_dir_fd and dst_dir_fd parameters.

  Змінено в версії 3.6: Приймає path-like object для src і dst.

os.renames(old, new)

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

  Примітка

  Ця функція може вийти з ладу з новою структурою каталогів, якщо у вас немає дозволів, необхідних для видалення кінцевого каталогу або файлу.

  Викликає подію аудиту `os.rename` з аргументами `src`, `dst`, `src_dir_fd`, `dst_dir_fd`.

  Змінено в версії 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`.

  Added in version 3.3.

  Змінено в версії 3.6: Приймає path-like object для src і dst.

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

  Remove (delete) the directory path. If the directory does not exist or is not empty, a `FileNotFoundError` or an `OSError` is raised respectively. In order to remove whole directory trees, `shutil.rmtree()` can be used.

  Ця функція може підтримувати шляхи відносно дескрипторів каталогу.

  Викликає подію аудиту `os.rmdir` з аргументами `path`, `dir_fd`.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає 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`.

    Added in version 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)

  Примітка

  On Unix-based systems, `scandir()` uses the system’s opendir() and readdir() functions. On Windows, it uses the Win32 FindFirstFileW and FindNextFileW functions.

  Added in version 3.5.

  Змінено в версії 3.6: Added support for the context manager protocol and the `close()` method. If a `scandir()` iterator is neither exhausted nor explicitly closed a `ResourceWarning` will be emitted in its destructor.

  Функція приймає path-like object.

  Змінено в версії 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. Шлях є абсолютним, лише якщо аргумент path `scandir()` був абсолютним. Якщо аргумент `scandir()` path був дескриптором файлу, атрибут `path` буде таким самим, як атрибут `name`.

    Атрибут `path` матиме значення `bytes`, якщо аргумент path `scandir()` має тип `bytes` та `str` інакше. Використовуйте `fsdecode()` для декодування байтових імен файлів.

  inode()

    Повертає номер inode запису.

    Результат кешується в об’єкті `os.DirEntry`. Використовуйте `os.stat(entry.path, follow_symlinks=False).st_ino`, щоб отримати актуальну інформацію.

    Для першого некешованого виклику потрібен системний виклик у Windows, але не в Unix.

  is_dir(*, follow_symlinks=True)

    Повертає `True`, якщо цей запис є каталогом або символічним посиланням, що вказує на каталог; повертає `False`, якщо запис є або вказує на будь-який інший тип файлу, або якщо він більше не існує.

    Якщо follow_symlinks має значення `False`, повертає `True`, лише якщо цей запис є каталогом (без наступних символічних посилань); повертає `False`, якщо запис є файлом будь-якого іншого типу або якщо він більше не існує.

    Результат кешується в об’єкті `os.DirEntry` з окремим кешем для follow_symlinks `True` і `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()

    Return `True` if this entry is a junction (even if broken); return `False` if the entry points to a regular directory, any kind of file, a symlink, or if it doesn’t exist anymore.

    The result is cached on the `os.DirEntry` object. Call `os.path.isjunction()` to fetch up-to-date information.

    Added in version 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_symlinks `True` і `False`. Зателефонуйте `os.stat()`, щоб отримати актуальну інформацію.

  Note that there is a nice correspondence between several attributes and methods of `os.DirEntry` and of `pathlib.Path`. In particular, the `name` attribute has the same meaning, as do the `is_dir()`, `is_file()`, `is_symlink()`, `is_junction()`, and `stat()` methods.

  Added in version 3.5.

  Змінено в версії 3.6: Додано підтримку інтерфейсу `PathLike`. Додано підтримку шляхів `bytes` у Windows.

  Змінено в версії 3.12: The `st_ctime` attribute of a stat result is deprecated on Windows. The file creation time is properly available as `st_birthtime`, and in the future `st_ctime` may be changed to return zero or the metadata change time, if available.

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()` для результату. Це не стосується висячих символічних посилань або точок з’єднання, які призведуть до звичайних винятків.

  Приклад:

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

  Дивись також

  Функції `fstat()` і `lstat()`.

  Змінено в версії 3.3: Added the dir_fd and follow_symlinks parameters, specifying a file descriptor instead of a path.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.8: У Windows усі точки повторного аналізу, які може вирішити операційна система, тепер відстежуються, а передача `follow_symlinks=False` вимикає відстеження всіх сурогатних точок повторного аналізу імен. Якщо операційна система досягає точки повторного аналізу, за якою вона не може слідувати, stat тепер повертає інформацію для початкового шляху, як якщо б було вказано `follow_symlinks=False` замість того, щоб викликати помилку.

class os.stat_result

  Object whose attributes correspond roughly to the members of the `stat` structure. It is used for the result of `os.stat()`, `os.fstat()` and `os.lstat()`.

  Атрибути:

  st_mode

    Режим файлу: тип файлу та біти режиму файлу (дозволи).

  st_ino

    Залежить від платформи, але якщо не нуль, унікально ідентифікує файл для заданого значення `st_dev`. Зазвичай:

    - номер inode в Unix,

    - індекс файлу у Windows

  st_dev

    Ідентифікатор пристрою, на якому знаходиться цей файл.

  st_nlink

    Кількість жорстких посилань.

  st_uid

    Ідентифікатор користувача власника файлу.

  st_gid

    Груповий ідентифікатор власника файлу.

  st_size

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

  Мітки часу:

  st_atime

    Час останнього доступу, виражений у секундах.

  st_mtime

    Час останньої зміни вмісту, виражений у секундах.

  st_ctime

    Time of most recent metadata change expressed in seconds.

    Змінено в версії 3.12: `st_ctime` is deprecated on Windows. Use `st_birthtime` for the file creation time. In the future, `st_ctime` will contain the time of the most recent metadata change, as for other platforms.

  st_atime_ns

    Час останнього доступу, виражений у наносекундах як ціле число.

    Added in version 3.3.

  st_mtime_ns

    Час останньої зміни вмісту, виражений у наносекундах як ціле число.

    Added in version 3.3.

  st_ctime_ns

    Time of most recent metadata change expressed in nanoseconds as an integer.

    Added in version 3.3.

    Змінено в версії 3.12: `st_ctime_ns` is deprecated on Windows. Use `st_birthtime_ns` for the file creation time. In the future, `st_ctime` will contain the time of the most recent metadata change, as for other platforms.

  st_birthtime

    Time of file creation expressed in seconds. This attribute is not always available, and may raise `AttributeError`.

    Змінено в версії 3.12: `st_birthtime` is now available on Windows.

  st_birthtime_ns

    Time of file creation expressed in nanoseconds as an integer. This attribute is not always available, and may raise `AttributeError`.

    Added in version 3.12.

  Примітка

  The exact meaning and resolution of the `st_atime`, `st_mtime`, `st_ctime` and `st_birthtime` attributes depend on the operating system and the file system. For example, on Windows systems using the FAT32 file systems, `st_mtime` has 2-second resolution, and `st_atime` has only 1-day resolution. See your operating system documentation for details.

  Similarly, although `st_atime_ns`, `st_mtime_ns`, `st_ctime_ns` and `st_birthtime_ns` are always expressed in nanoseconds, many systems do not provide nanosecond precision. On systems that do provide nanosecond precision, the floating-point object used to store `st_atime`, `st_mtime`, `st_ctime` and `st_birthtime` cannot preserve all of it, and as such will be slightly inexact. If you need the exact timestamps you should always use `st_atime_ns`, `st_mtime_ns`, `st_ctime_ns` and `st_birthtime_ns`.

  У деяких системах Unix (таких як Linux) також можуть бути доступні такі атрибути:

  st_blocks

    Кількість 512-байтних блоків, виділених для файлу. Це може бути менше, ніж `st_size`/512, якщо файл має отвори.

  st_blksize

    «Бажаний» розмір блоку для ефективного введення/виведення файлової системи. Запис у файл меншими фрагментами може спричинити неефективне читання-змінення-перезапис.

  st_rdev

    Тип пристрою, якщо пристрій inode.

  st_flags

    Визначені користувачем позначки для файлу.

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

  st_gen

    Номер покоління файлу.

  У Solaris і похідних також можуть бути доступні такі атрибути:

  st_fstype

    Рядок, який однозначно визначає тип файлової системи, яка містить файл.

  У системах macOS також можуть бути доступні такі атрибути:

  st_rsize

    Реальний розмір файлу.

  st_creator

    Творець файлу.

  st_type

    Тип файлу.

  У системах Windows також доступні такі атрибути:

  st_file_attributes

    Windows file attributes: `dwFileAttributes` member of the `BY_HANDLE_FILE_INFORMATION` structure returned by `GetFileInformationByHandle()`. See the `FILE_ATTRIBUTE_* <stat.FILE_ATTRIBUTE_ARCHIVE>` constants in the `stat` module.

    Added in version 3.5.

  st_reparse_tag

    When `st_file_attributes` has the `FILE_ATTRIBUTE_REPARSE_POINT` set, this field contains the tag identifying the type of reparse point. See the `IO_REPARSE_TAG_*` constants in the `stat` module.

  The standard module `stat` defines functions and constants that are useful for extracting information from a `stat` structure. (On Windows, some items are filled with dummy values.)

  For backward compatibility, a `stat_result` instance is also accessible as a tuple of at least 10 integers giving the most important (and portable) members of the `stat` structure, in the order `st_mode`, `st_ino`, `st_dev`, `st_nlink`, `st_uid`, `st_gid`, `st_size`, `st_atime`, `st_mtime`, `st_ctime`. More items may be added at the end by some implementations. For compatibility with older Python versions, accessing `stat_result` as a tuple always returns integers.

  Змінено в версії 3.5: Тепер Windows повертає індекс файлу як `st_ino`, якщо він доступний.

  Змінено в версії 3.7: Додано член `st_fstype` до Solaris/derivatives.

  Змінено в версії 3.8: Додано член `st_reparse_tag` у Windows.

  Змінено в версії 3.8: On Windows, the `st_mode` member now identifies special files as `S_IFCHR`, `S_IFIFO` or `S_IFBLK` as appropriate.

  Змінено в версії 3.12: On Windows, `st_ctime` is deprecated. Eventually, it will contain the last metadata change time, for consistency with other platforms, but for now still contains creation time. Use `st_birthtime` for the creation time.

  On Windows, `st_ino` may now be up to 128 bits, depending on the file system. Previously it would not be above 64 bits, and larger file identifiers would be arbitrarily packed.

  On Windows, `st_rdev` no longer returns a value. Previously it would contain the same as `st_dev`, which was incorrect.

  Added the `st_birthtime` member on Windows.

os.statx(path, mask, *, flags=0, dir_fd=None, follow_symlinks=True)

  Get the status of a file or file descriptor by performing a `statx()` system call on the given path.

  path is a path-like object or an open file descriptor. mask is a combination of the module-level `STATX_*` constants specifying the information to retrieve. flags is a combination of the module-level `AT_STATX_*` constants and/or `AT_NO_AUTOMOUNT`. Returns a `statx_result` object whose `stx_mask` attribute specifies the information actually retrieved (which may differ from mask).

  This function supports specifying a file descriptor, paths relative to directory descriptors, and not following symlinks.

  Дивись також

  The statx(2) man page.

  Availability: Linux >= 4.11 with glibc >= 2.28.

  Added in version 3.15.

class os.statx_result

  Information about a file returned by `os.statx()`.

  `statx_result` has the following attributes:

  stx_atime

    Час останнього доступу, виражений у секундах.

    Equal to `None` if `STATX_ATIME` is missing from `stx_mask`.

  stx_atime_ns

    Час останнього доступу, виражений у наносекундах як ціле число.

    Equal to `None` if `STATX_ATIME` is missing from `stx_mask`.

  stx_atomic_write_segments_max

    Maximum iovecs for direct I/O with torn-write protection.

    Equal to `None` if `STATX_WRITE_ATOMIC` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.11.

  stx_atomic_write_unit_max

    Maximum size for direct I/O with torn-write protection.

    Equal to `None` if `STATX_WRITE_ATOMIC` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.11.

  stx_atomic_write_unit_max_opt

    Maximum optimized size for direct I/O with torn-write protection.

    Equal to `None` if `STATX_WRITE_ATOMIC` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.16.

  stx_atomic_write_unit_min

    Minimum size for direct I/O with torn-write protection.

    Equal to `None` if `STATX_WRITE_ATOMIC` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.11.

  stx_attributes

    Bitmask of `STATX_ATTR_*` constants specifying the attributes of this file.

  stx_attributes_mask

    A mask indicating which bits in `stx_attributes` are supported by the VFS and the filesystem.

  stx_blksize

    «Бажаний» розмір блоку для ефективного введення/виведення файлової системи. Запис у файл меншими фрагментами може спричинити неефективне читання-змінення-перезапис.

  stx_blocks

    Number of 512-byte blocks allocated for file. This may be smaller than `stx_size`/512 when the file has holes.

    Equal to `None` if `STATX_BLOCKS` is missing from `stx_mask`.

  stx_btime

    Time of file creation expressed in seconds.

    Equal to `None` if `STATX_BTIME` is missing from `stx_mask`.

  stx_btime_ns

    Time of file creation expressed in nanoseconds as an integer.

    Equal to `None` if `STATX_BTIME` is missing from `stx_mask`.

  stx_ctime

    Time of most recent metadata change expressed in seconds.

    Equal to `None` if `STATX_CTIME` is missing from `stx_mask`.

  stx_ctime_ns

    Time of most recent metadata change expressed in nanoseconds as an integer.

    Equal to `None` if `STATX_CTIME` is missing from `stx_mask`.

  stx_dev

    Ідентифікатор пристрою, на якому знаходиться цей файл.

  stx_dev_major

    Major number of the device on which this file resides.

  stx_dev_minor

    Minor number of the device on which this file resides.

  stx_dio_mem_align

    Direct I/O memory buffer alignment requirement.

    Equal to `None` if `STATX_DIOALIGN` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.1.

  stx_dio_offset_align

    Direct I/O file offset alignment requirement.

    Equal to `None` if `STATX_DIOALIGN` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.1.

  stx_dio_read_offset_align

    Direct I/O file offset alignment requirement for reads.

    Equal to `None` if `STATX_DIO_READ_ALIGN` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.14.

  stx_gid

    Груповий ідентифікатор власника файлу.

    Equal to `None` if `STATX_GID` is missing from `stx_mask`.

  stx_ino

    Inode number.

    Equal to `None` if `STATX_INO` is missing from `stx_mask`.

  stx_mask

    Bitmask of `STATX_*` constants specifying the information retrieved, which may differ from what was requested.

  stx_mnt_id

    Mount identifier.

    Equal to `None` if `STATX_MNT_ID` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 5.8.

  stx_mode

    Режим файлу: тип файлу та біти режиму файлу (дозволи).

    Equal to `None` if `STATX_TYPE | STATX_MODE` is missing from `stx_mask`.

  stx_mtime

    Час останньої зміни вмісту, виражений у секундах.

    Equal to `None` if `STATX_MTIME` is missing from `stx_mask`.

  stx_mtime_ns

    Час останньої зміни вмісту, виражений у наносекундах як ціле число.

    Equal to `None` if `STATX_MTIME` is missing from `stx_mask`.

  stx_nlink

    Кількість жорстких посилань.

    Equal to `None` if `STATX_NLINK` is missing from `stx_mask`.

  stx_rdev

    Тип пристрою, якщо пристрій inode.

  stx_rdev_major

    Major number of the device this file represents.

  stx_rdev_minor

    Minor number of the device this file represents.

  stx_size

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

    Equal to `None` if `STATX_SIZE` is missing from `stx_mask`.

  stx_subvol

    Subvolume identifier.

    Equal to `None` if `STATX_SUBVOL` is missing from `stx_mask`.

    Availability: Linux >= 4.11 with glibc >= 2.28 and build-time kernel userspace API headers >= 6.10.

  stx_uid

    Ідентифікатор користувача власника файлу.

    Equal to `None` if `STATX_UID` is missing from `stx_mask`.

  Дивись також

  The statx(2) man page.

  Availability: Linux >= 4.11 with glibc >= 2.28.

  Added in version 3.15.

os.STATX_TYPE
os.STATX_MODE
os.STATX_NLINK
os.STATX_UID
os.STATX_GID
os.STATX_ATIME
os.STATX_MTIME
os.STATX_CTIME
os.STATX_INO
os.STATX_SIZE
os.STATX_BLOCKS
os.STATX_BASIC_STATS
os.STATX_BTIME
os.STATX_MNT_ID
os.STATX_DIOALIGN
os.STATX_MNT_ID_UNIQUE
os.STATX_SUBVOL
os.STATX_WRITE_ATOMIC
os.STATX_DIO_READ_ALIGN

  Bitflags for use in the mask parameter to `os.statx()`. Some of these flags may be available even when their corresponding members in `statx_result` are not available.

  Availability: Linux >= 4.11 with glibc >= 2.28.

  Added in version 3.15.

os.AT_STATX_FORCE_SYNC

  A flag for the `os.statx()` function. Requests that the kernel return up-to-date information even when doing so is expensive (for example, requiring a round trip to the server for a file on a network filesystem).

  Availability: Linux >= 4.11 with glibc >= 2.28.

  Added in version 3.15.

os.AT_STATX_DONT_SYNC

  A flag for the `os.statx()` function. Requests that the kernel return cached information if possible.

  Availability: Linux >= 4.11 with glibc >= 2.28.

  Added in version 3.15.

os.AT_STATX_SYNC_AS_STAT

  A flag for the `os.statx()` function. This flag is defined as `0`, so it has no effect, but it can be used to explicitly indicate neither `AT_STATX_FORCE_SYNC` nor `AT_STATX_DONT_SYNC` is being passed. In the absence of the other two flags, the kernel will generally return information as fresh as `os.stat()` would return.

  Availability: Linux >= 4.11 with glibc >= 2.28.

  Added in version 3.15.

os.AT_NO_AUTOMOUNT

  If the final component of a path is an automount point, operate on the automount point instead of performing the automount. On Linux, `os.stat()`, `os.fstat()` and `os.lstat()` always behave this way.

  Availability: Linux.

  Added in version 3.15.

os.statvfs(path)

  Perform a `statvfs()` system call on the given path. The return value is an object whose attributes describe the filesystem on the given path, and correspond to the members of the `statvfs` structure, namely: `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).

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

  Availability: Unix.

  Змінено в версії 3.2: Додано константи `ST_RDONLY` і `ST_NOSUID`.

  Змінено в версії 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу.

  Змінено в версії 3.4: `ST_NODEV`, `ST_NOEXEC`, `ST_SYNCHRONOUS`, `ST_MANDLOCK`, `ST_WRITE`, `ST_APPEND`, `ST_IMMUTABLE`, Додано константи `ST_NOATIME`, `ST_NODIRATIME` і `ST_RELATIME`.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.7: Added the `f_fsid` attribute.

os.supports_dir_fd

  A `set` object indicating which functions in the `os` module accept an open file descriptor for their dir_fd parameter. Different platforms provide different features, and the underlying functionality Python uses to implement the dir_fd parameter is not available on all platforms Python supports. For consistency’s sake, functions that may support dir_fd always allow specifying the parameter, but will throw an exception if the functionality is used when it’s not locally available. (Specifying `None` for dir_fd is always supported on all platforms.)

  Щоб перевірити, чи певна функція приймає дескриптор відкритого файлу для свого параметра dir_fd, використовуйте оператор `in` на `supports_dir_fd`. Як приклад, цей вираз оцінюється як `True`, якщо `os.stat()` приймає дескриптори відкритих файлів для dir_fd на локальній платформі:

      os.stat in os.supports_dir_fd

  Наразі параметри dir_fd працюють лише на платформах Unix; жоден з них не працює в Windows.

  Added in version 3.3.

os.supports_effective_ids

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

  Цей вираз оцінюється як `True`, якщо `os.access()` підтримує `effective_ids=True` на локальній платформі:

      os.access in os.supports_effective_ids

  Наразі effective_ids підтримується лише на платформах Unix; це не працює в Windows.

  Added in version 3.3.

os.supports_fd

  A `set` object indicating which functions in the `os` module permit specifying their path parameter as an open file descriptor on the local platform. Different platforms provide different features, and the underlying functionality Python uses to accept open file descriptors as path arguments is not available on all platforms Python supports.

  Щоб визначити, чи дозволяє певна функція вказувати дескриптор відкритого файлу для свого параметра path, використовуйте оператор `in` на `supports_fd`. Як приклад, цей вираз має значення `True`, якщо `os.chdir()` приймає дескриптори відкритих файлів для path на вашій локальній платформі:

      os.chdir in os.supports_fd

  Added in version 3.3.

os.supports_follow_symlinks

  A `set` object indicating which functions in the `os` module accept `False` for their follow_symlinks parameter on the local platform. Different platforms provide different features, and the underlying functionality Python uses to implement follow_symlinks is not available on all platforms Python supports. For consistency’s sake, functions that may support follow_symlinks always allow specifying the parameter, but will throw an exception if the functionality is used when it’s not locally available. (Specifying `True` for follow_symlinks is always supported on all platforms.)

  Щоб перевірити, чи певна функція приймає `False` для свого параметра follow_symlinks, використовуйте оператор `in` у `supports_follow_symlinks`. Як приклад, цей вираз має значення `True`, якщо ви можете вказати `follow_symlinks=False` під час виклику `os.stat()` на локальній платформі:

      os.stat in os.supports_follow_symlinks

  Added in version 3.3.

os.symlink(src, dst, target_is_directory=False, *, dir_fd=None)

  Створіть символічне посилання на src під назвою dst.

  The src parameter refers to the target of the link (the file or directory being linked to), and dst is the name of the link being created.

  У Windows символічне посилання представляє або файл, або каталог і не перетворюється на ціль динамічно. Якщо ціль присутня, буде створено відповідний тип символічного посилання. В іншому випадку символічне посилання буде створено як каталог, якщо target_is_directory має значення `True`, або символічне посилання на файл (за замовчуванням), інакше. На платформах, відмінних від Windows, target_is_directory ігнорується.

  Ця функція може підтримувати шляхи відносно дескрипторів каталогу.

  Примітка

  У новіших версіях Windows 10 непривілейовані облікові записи можуть створювати символічні посилання, якщо ввімкнено режим розробника. Якщо режим розробника недоступний/увімкнено, потрібен привілей SeCreateSymbolicLinkPrivilege, або процес потрібно запускати від імені адміністратора.

  `OSError` виникає, коли функцію викликає непривілейований користувач.

  Викликає подію аудиту `os.symlink` з аргументами `src`, `dst`, `dir_fd`.

  Availability: Unix, Windows.

  The function is limited on WASI, see WebAssembly platforms for more information.

  Змінено в версії 3.2: Додано підтримку символічних посилань Windows 6.0 (Vista).

  Змінено в версії 3.3: Added the dir_fd parameter, and now allow target_is_directory on non-Windows platforms.

  Змінено в версії 3.6: Приймає path-like object для src і dst.

  Змінено в версії 3.8: Додано підтримку непідвищених символічних посилань у Windows із режимом розробника.

os.sync()

  Примусово записувати все на диск.

  Availability: Unix.

  Added in version 3.3.

os.truncate(path, length)

  Обріжте файл, що відповідає шляху, щоб його розмір не перевищував length байтів.

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

  Викликає подію аудиту `os.truncate` з аргументами `path`, `length`.

  Availability: Unix, Windows.

  Added in version 3.3.

  Змінено в версії 3.5: Додана підтримка Windows

  Змінено в версії 3.6: Приймає path-like object.

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

  Видалити (видалити) шлях до файлу. Ця функція семантично ідентична `remove()`; ім’я `unlink` є його традиційною назвою Unix. Будь ласка, перегляньте документацію для `remove()` для отримання додаткової інформації.

  Викликає подію аудиту `os.remove` з аргументами `path`, `dir_fd`.

  Змінено в версії 3.3: Додано параметр dir_fd.

  Змінено в версії 3.6: Приймає 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, що виражає наносекунди.

  - If times is not `None`, it must be a 2-tuple of the form `(atime, mtime)` where each member is a real number expressing seconds, rounded down to nanoseconds.

  - Якщо times має значення `None` і ns не вказано, це еквівалентно вказівці `ns=(atime_ns, mtime_ns)`, де обидва часи є поточним часом.

  Помилково вказувати кортежі як для times, так і для ns.

  Note that the exact times you set here may not be returned by a subsequent `stat()` call, depending on the resolution with which your operating system records access and modification times; see `stat()`. The best way to preserve exact times is to use the st_atime_ns and st_mtime_ns fields from the `os.stat()` result object with the ns parameter to `utime()`.

  Ця функція може підтримувати зазначення дескриптора файлу, шляхи відносно дескрипторів каталогу та неперехід за символічними посиланнями.

  Викликає подію аудиту `os.utime` з аргументами `path`, `times`, `ns`, `dir_fd`.

  Змінено в версії 3.3: Додано підтримку для вказівки шляху як дескриптора відкритого файлу та параметрів dir_fd, follow_symlinks і ns.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.15: Accepts any real numbers as times, not only integers or floats.

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

  Згенеруйте імена файлів у дереві каталогів, проходячи по дереву зверху вниз або знизу вгору. Для кожного каталогу в дереві, що знаходиться в каталозі top (включно з самим top), він дає 3-кортеж `(dirpath, dirnames, filenames)`.

  dirpath is a string, the path to the directory. dirnames is a list of the names of the subdirectories in dirpath (including symlinks to directories, and excluding `'.'` and `'..'`). filenames is a list of the names of the non-directory files in dirpath. Note that the names in the lists contain no path components. To get a full path (which begins with top) to a file or directory in dirpath, do `os.path.join(dirpath, name)`. Whether or not the lists are sorted depends on the file system. If a file is removed from or added to the dirpath directory during generating the lists, whether a name for that file be included is unspecified.

  Якщо необов’язковий аргумент 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`, щоб відвідувати каталоги, на які вказують символічні посилання, у системах, які їх підтримують.

  Примітка

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

  Примітка

  Якщо ви передаєте відносний шлях, не змінюйте поточний робочий каталог між відновленням `walk()`. `walk()` ніколи не змінює поточний каталог і припускає, що його виклик теж не змінює.

  This example displays the number of bytes taken by non-directory files in each directory under the starting directory, except that it doesn’t look under any `__pycache__` subdirectory:

      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`.

  Змінено в версії 3.5: Ця функція тепер викликає `os.scandir()` замість `os.listdir()`, що робить її швидшою завдяки зменшенню кількості викликів до `os.stat()`.

  Змінено в версії 3.6: Приймає 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`.

  Примітка

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

  This example displays the number of bytes taken by non-directory files in each directory under the starting directory, except that it doesn’t look under any `__pycache__` subdirectory:

      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`.

  Availability: Unix.

  Added in version 3.3.

  Змінено в версії 3.6: Приймає path-like object.

  Змінено в версії 3.7: Додано підтримку шляхів `bytes`.

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

  Створіть анонімний файл і поверніть дескриптор файлу, який посилається на нього. flags має бути однією з констант `os.MFD_*`, доступних у системі (або їх побітовою комбінацією АБО). За замовчуванням новий файловий дескриптор є non-inheritable.

  Ім’я, указане в name, використовується як ім’я файлу та відображатиметься як ціль відповідного символічного посилання в каталозі `/proc/self/fd/`. Ім’я, що відображається, завжди має префікс `memfd:` і служить лише для цілей налагодження. Імена не впливають на поведінку файлового дескриптора, тому кілька файлів можуть мати однакові назви без будь-яких побічних ефектів.

  Availability: Linux >= 3.17 with glibc >= 2.27.

  Added in version 3.8.

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

  Ці позначки можна передати в `memfd_create()`.

  Availability: Linux >= 3.17 with glibc >= 2.27

  The `MFD_HUGE*` flags are only available since Linux 4.14.

  Added in version 3.8.

os.eventfd(initval[, flags=os.EFD_CLOEXEC])

  Створити та повернути дескриптор файлу подій. Дескриптори файлів підтримують raw `read()` і `write()` з розміром буфера 8, `select()`, `poll()` тощо. Додаткову інформацію дивіться на сторінці довідки eventfd(2). За замовчуванням новий файловий дескриптор є non-inheritable.

  initval is the initial value of the event counter. The initial value must be a 32 bit unsigned integer. Please note that the initial value is limited to a 32 bit unsigned int although the event counter is an unsigned 64 bit integer with a maximum value of 264-2.

  прапори можуть бути створені з `EFD_CLOEXEC`, `EFD_NONBLOCK` і `EFD_SEMAPHORE`.

  Якщо вказано `EFD_SEMAPHORE` і лічильник подій ненульовий, `eventfd_read()` повертає 1 і зменшує лічильник на одиницю.

  Якщо `EFD_SEMAPHORE` не вказано, а лічильник подій ненульовий, `eventfd_read()` повертає поточне значення лічильника подій і скидає лічильник до нуля.

  Якщо лічильник подій дорівнює нулю і `EFD_NONBLOCK` не вказано, `eventfd_read()` блокує.

  `eventfd_write()` збільшує лічильник подій. Блокує запис, якщо операція запису збільшить лічильник до значення, більшого за 264-2.

  Приклад:

      import os

      # semaphore with start value '1'
      fd = os.eventfd(1, os.EFD_SEMAPHORE | os.EFD_CLOEXEC)
      try:
          # acquire semaphore
          v = os.eventfd_read(fd)
          try:
              do_work()
          finally:
              # release semaphore
              os.eventfd_write(fd, v)
      finally:
          os.close(fd)

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.10.

os.eventfd_read(fd)

  Зчитування значення з дескриптора файлу `eventfd()` і повернення 64-бітного беззнакового int. Функція не перевіряє, що fd є `eventfd()`.

  Availability: Linux >= 2.6.27

  Added in version 3.10.

os.eventfd_write(fd, value)

  Додайте значення до дескриптора файлу `eventfd()`. значення має бути 64-бітним беззнаковим цілим. Функція не перевіряє, що fd є `eventfd()`.

  Availability: Linux >= 2.6.27

  Added in version 3.10.

os.EFD_CLOEXEC

  Установіть прапорець close-on-exec для нового файлового дескриптора `eventfd()`.

  Availability: Linux >= 2.6.27

  Added in version 3.10.

os.EFD_NONBLOCK

  Установіть позначку статусу `O_NONBLOCK` для нового файлового дескриптора `eventfd()`.

  Availability: Linux >= 2.6.27

  Added in version 3.10.

os.EFD_SEMAPHORE

  Provide semaphore-like semantics for reads from an `eventfd()` file descriptor. On read the internal counter is decremented by one.

  Availability: Linux >= 2.6.30

  Added in version 3.10.

### Timer File Descriptors

Added in version 3.13.

These functions provide support for Linux’s timer file descriptor API. Naturally, they are all only available on Linux.

os.timerfd_create(clockid, /, *, flags=0)

  Create and return a timer file descriptor (timerfd).

  The file descriptor returned by `timerfd_create()` supports:

  - `read()`

  - `select()`

  - `poll()`

  The file descriptor’s `read()` method can be called with a buffer size of 8. If the timer has already expired one or more times, `read()` returns the number of expirations with the host’s endianness, which may be converted to an `int` by `int.from_bytes(x, byteorder=sys.byteorder)`.

  `select()` and `poll()` can be used to wait until timer expires and the file descriptor is readable.

  clockid must be a valid clock ID, as defined in the `time` module:

  - `time.CLOCK_REALTIME`

  - `time.CLOCK_MONOTONIC`

  - `time.CLOCK_BOOTTIME` (Since Linux 3.15 for timerfd_create)

  If clockid is `time.CLOCK_REALTIME`, a settable system-wide real-time clock is used. If system clock is changed, timer setting need to be updated. To cancel timer when system clock is changed, see `TFD_TIMER_CANCEL_ON_SET`.

  If clockid is `time.CLOCK_MONOTONIC`, a non-settable monotonically increasing clock is used. Even if the system clock is changed, the timer setting will not be affected.

  If clockid is `time.CLOCK_BOOTTIME`, same as `time.CLOCK_MONOTONIC` except it includes any time that the system is suspended.

  The file descriptor’s behaviour can be modified by specifying a flags value. Any of the following variables may used, combined using bitwise OR (the `|` operator):

  - `TFD_NONBLOCK`

  - `TFD_CLOEXEC`

  If `TFD_NONBLOCK` is not set as a flag, `read()` blocks until the timer expires. If it is set as a flag, `read()` doesn’t block, but If there hasn’t been an expiration since the last call to read, `read()` raises `OSError` with `errno` is set to `errno.EAGAIN`.

  `TFD_CLOEXEC` is always set by Python automatically.

  The file descriptor must be closed with `os.close()` when it is no longer needed, or else the file descriptor will be leaked.

  Дивись також

  The timerfd_create(2) man page.

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.timerfd_settime(fd, /, *, flags=flags, initial=0.0, interval=0.0)

  Alter a timer file descriptor’s internal timer. This function operates the same interval timer as `timerfd_settime_ns()`.

  fd must be a valid timer file descriptor.

  The timer’s behaviour can be modified by specifying a flags value. Any of the following variables may used, combined using bitwise OR (the `|` operator):

  - `TFD_TIMER_ABSTIME`

  - `TFD_TIMER_CANCEL_ON_SET`

  The timer is disabled by setting initial to zero (`0`). If initial is equal to or greater than zero, the timer is enabled. If initial is less than zero, it raises an `OSError` exception with `errno` set to `errno.EINVAL`

  By default the timer will fire when initial seconds have elapsed. (If initial is zero, timer will fire immediately.)

  However, if the `TFD_TIMER_ABSTIME` flag is set, the timer will fire when the timer’s clock (set by clockid in `timerfd_create()`) reaches initial seconds.

  The timer’s interval is set by the interval real number. If interval is zero, the timer only fires once, on the initial expiration. If interval is greater than zero, the timer fires every time interval seconds have elapsed since the previous expiration. If interval is less than zero, it raises `OSError` with `errno` set to `errno.EINVAL`

  If the `TFD_TIMER_CANCEL_ON_SET` flag is set along with `TFD_TIMER_ABSTIME` and the clock for this timer is `time.CLOCK_REALTIME`, the timer is marked as cancelable if the real-time clock is changed discontinuously. Reading the descriptor is aborted with the error ECANCELED.

  Linux manages system clock as UTC. A daylight-savings time transition is done by changing time offset only and doesn’t cause discontinuous system clock change.

  Discontinuous system clock change will be caused by the following events:

  - `settimeofday`

  - `clock_settime`

  - set the system date and time by `date` command

  Return a two-item tuple of (`next_expiration`, `interval`) from the previous timer state, before this function executed.

  Дивись також

  timerfd_create(2), timerfd_settime(2), settimeofday(2), clock_settime(2), and date(1).

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.timerfd_settime_ns(fd, /, *, flags=0, initial=0, interval=0)

  Similar to `timerfd_settime()`, but use time as nanoseconds. This function operates the same interval timer as `timerfd_settime()`.

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.timerfd_gettime(fd, /)

  Return a two-item tuple of floats (`next_expiration`, `interval`).

  `next_expiration` denotes the relative time until next the timer next fires, regardless of if the `TFD_TIMER_ABSTIME` flag is set.

  `interval` denotes the timer’s interval. If zero, the timer will only fire once, after `next_expiration` seconds have elapsed.

  Дивись також

  timerfd_gettime(2)

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.timerfd_gettime_ns(fd, /)

  Similar to `timerfd_gettime()`, but return time as nanoseconds.

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.TFD_NONBLOCK

  A flag for the `timerfd_create()` function, which sets the `O_NONBLOCK` status flag for the new timer file descriptor. If `TFD_NONBLOCK` is not set as a flag, `read()` blocks.

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.TFD_CLOEXEC

  A flag for the `timerfd_create()` function, If `TFD_CLOEXEC` is set as a flag, set close-on-exec flag for new file descriptor.

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.TFD_TIMER_ABSTIME

  A flag for the `timerfd_settime()` and `timerfd_settime_ns()` functions. If this flag is set, initial is interpreted as an absolute value on the timer’s clock (in UTC seconds or nanoseconds since the Unix Epoch).

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

os.TFD_TIMER_CANCEL_ON_SET

  A flag for the `timerfd_settime()` and `timerfd_settime_ns()` functions along with `TFD_TIMER_ABSTIME`. The timer is cancelled when the time of the underlying clock changes discontinuously.

  Availability: Linux >= 2.6.27 with glibc >= 2.8

  Added in version 3.13.

### Розширені атрибути Linux

Added in version 3.3.

Усі ці функції доступні лише в Linux.

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

  Повертає значення розширеного атрибута файлової системи attribute для path. attribute може бути байтом або str (прямо чи опосередковано через інтерфейс `PathLike`). Якщо це str, воно закодовано з кодуванням файлової системи.

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

  Викликає подію аудиту `os.getxattr` з аргументами `path`, `attribute`.

  Змінено в версії 3.6: Приймає path-like object для path і attribute.

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

  Повертає список розширених атрибутів файлової системи за шляхом. Атрибути в списку представлені як рядки, декодовані за допомогою кодування файлової системи. Якщо path має значення `None`, `listxattr()` перевірить поточний каталог.

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

  Викликає подію аудиту `os.listxattr` з аргументом `path`.

  Змінено в версії 3.6: Приймає path-like object.

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

  Видаляє розширений атрибут файлової системи attribute із path. attribute має бути байтом або str (прямо чи опосередковано через інтерфейс `PathLike`). Якщо це рядок, він кодується за допомогою filesystem encoding and error handler.

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

  Викликає подію аудиту `os.removexattr` з аргументами `path`, `attribute`.

  Змінено в версії 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`.

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

  Примітка

  Помилка у версіях ядра Linux до 2.6.39 спричинила ігнорування аргументу flags у деяких файлових системах.

  Викликає подію аудиту `os.setxattr` з аргументами `path`, `attribute`, `value`, `flags`.

  Змінено в версії 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()

  Generate a `SIGABRT` signal to the current process. On Unix, the default behavior is to produce a core dump; on Windows, the process immediately returns an exit code of `3`. Be aware that calling this function will not call the Python signal handler registered for `SIGABRT` with `signal.signal()`.

os.add_dll_directory(path)

  Додайте шлях до шляху пошуку DLL.

  Цей шлях пошуку використовується під час вирішення залежностей для імпортованих модулів розширення (сам модуль вирішується за допомогою `sys.path`), а також за допомогою `ctypes`.

  Видаліть каталог, викликавши close() для повернутого об’єкта або використовуючи його в операторі `with`.

  Перегляньте документацію Microsoft, щоб дізнатися більше про те, як завантажуються DLL.

  Викликає подію аудиту `os.add_dll_directory` з аргументом `path`.

  Availability: Windows.

  Added in version 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*` функція.

  The «l» and «v» variants of the `exec*` functions differ in how command-line arguments are passed. The «l» variants are perhaps the easiest to work with if the number of parameters is fixed when the code is written; the individual parameters simply become additional parameters to the `execl*()` functions. The «v» variants are good when the number of parameters is variable, with the arguments being passed in a list or tuple as the args parameter. In either case, the arguments to the child process should start with the name of the command being run, but this is not enforced.

  The variants which include a «p» near the end (`execlp()`, `execlpe()`, `execvp()`, and `execvpe()`) will use the `PATH` environment variable to locate the program file. When the environment is being replaced (using one of the `exec*e` variants, discussed in the next paragraph), the new environment is used as the source of the `PATH` variable. The other variants, `execl()`, `execle()`, `execv()`, and `execve()`, will not use the `PATH` variable to locate the executable; path must contain an appropriate absolute or relative path. Relative paths must include at least one slash, even on Windows, as plain names will not be resolved.

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

  Для `execve()` на деяких платформах шлях також може бути вказаний як дескриптор відкритого файлу. Ця функція може не підтримуватися на вашій платформі; ви можете перевірити, чи він доступний, за допомогою `os.supports_fd`. Якщо він недоступний, його використання призведе до помилки `NotImplementedError`.

  Викликає подію аудиту `os.exec` з аргументами `path`, `args`, `env`.

  Availability: Unix, Windows, not WASI, not Android, not iOS.

  Змінено в версії 3.3: Додано підтримку вказівки шляху як дескриптора відкритого файлу для `execve()`.

  Змінено в версії 3.6: Приймає path-like object.

os._exit(n)

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

  Примітка

  The standard way to exit is `sys.exit(n)`. `_exit()` should normally only be used in the child process after a `fork()`.

Наступні коди виходу визначені та можуть використовуватися з `_exit()`, хоча вони не є обов’язковими. Зазвичай вони використовуються для системних програм, написаних мовою Python, таких як зовнішня програма доставки команд поштового сервера.

Примітка

Деякі з них можуть бути недоступні на всіх платформах Unix, оскільки існують певні відмінності. Ці константи визначені там, де вони визначені базовою платформою.

os.EX_OK

  Exit code that means no error occurred. May be taken from the defined value of `EXIT_SUCCESS` on some platforms. Generally has a value of zero.

  Availability: Unix, Windows.

os.EX_USAGE

  Код виходу, який означає, що команда була використана неправильно, наприклад, коли вказано неправильну кількість аргументів.

  Availability: Unix, not WASI.

os.EX_DATAERR

  Код виходу, який означає, що введені дані були неправильними.

  Availability: Unix, not WASI.

os.EX_NOINPUT

  Код виходу, який означає, що вхідний файл не існував або не читався.

  Availability: Unix, not WASI.

os.EX_NOUSER

  Код виходу, який означає, що вказаний користувач не існував.

  Availability: Unix, not WASI.

os.EX_NOHOST

  Код виходу, який означає, що вказаний хост не існував.

  Availability: Unix, not WASI.

os.EX_UNAVAILABLE

  Код виходу, який означає, що потрібна послуга недоступна.

  Availability: Unix, not WASI.

os.EX_SOFTWARE

  Код виходу, який означає, що виявлено внутрішню помилку програмного забезпечення.

  Availability: Unix, not WASI.

os.EX_OSERR

  Код виходу, який означає, що виявлено помилку операційної системи, наприклад неможливість розгалуження або створення каналу.

  Availability: Unix, not WASI.

os.EX_OSFILE

  Код виходу, який означає, що якийсь системний файл не існував, його неможливо відкрити або якийсь інший тип помилки.

  Availability: Unix, not WASI.

os.EX_CANTCREAT

  Код виходу означає, що вказаний користувачем вихідний файл неможливо створити.

  Availability: Unix, not WASI.

os.EX_IOERR

  Код виходу, який означає, що сталася помилка під час виконання вводу-виводу для деякого файлу.

  Availability: Unix, not WASI.

os.EX_TEMPFAIL

  Код виходу, який означає, що стався тимчасовий збій. Це вказує на те, що насправді не може бути помилкою, наприклад мережеве підключення, яке не вдалося встановити під час повторної операції.

  Availability: Unix, not WASI.

os.EX_PROTOCOL

  Код виходу, який означає, що обмін протоколом був незаконним, недійсним або незрозумілим.

  Availability: Unix, not WASI.

os.EX_NOPERM

  Код виходу, який означає, що було недостатньо дозволів для виконання операції (але не призначений для проблем файлової системи).

  Availability: Unix, not WASI.

os.EX_CONFIG

  Код виходу, який означає, що сталася якась помилка конфігурації.

  Availability: Unix, not WASI.

os.EX_NOTFOUND

  Код виходу, який означає щось на зразок «запис не знайдено».

  Availability: Unix, not WASI.

os.fork()

  Розгалужуйте дочірній процес. Повертає `0` у дочірньому процесі та ідентифікатор дочірнього процесу в батьківському. У разі виникнення помилки виникає `OSError`.

  Зауважте, що деякі платформи, включаючи FreeBSD <= 6.3 і Cygwin, мають відомі проблеми під час використання `fork()` із потоку.

  Викликає подію аудиту `os.fork` без аргументів.

  Попередження

  If you use TLS sockets in an application calling `fork()`, see the warning in the `ssl` documentation.

  Попередження

  On macOS the use of this function is unsafe when mixed with using higher-level system APIs, and that includes using `urllib.request`.

  Змінено в версії 3.8: Виклик `fork()` у підінтерпретаторі більше не підтримується (виникає `RuntimeError`).

  Змінено в версії 3.12: If Python is able to detect that your process has multiple threads, `os.fork()` now raises a `DeprecationWarning`.

  We chose to surface this as a warning, when detectable, to better inform developers of a design problem that the POSIX platform specifically notes as not supported. Even in code that appears to work, it has never been safe to mix threading with `os.fork()` on POSIX platforms. The CPython runtime itself has always made API calls that are not safe for use in the child process when threads existed in the parent (such as `malloc` and `free`).

  Users of macOS or users of libc or malloc implementations other than those typically found in glibc to date are among those already more likely to experience deadlocks running such code.

  See this discussion on fork being incompatible with threads for technical details of why we’re surfacing this longstanding platform compatibility problem to developers.

  Availability: POSIX, not WASI, not Android, not iOS.

os.forkpty()

  Розгалужуйте дочірній процес, використовуючи новий псевдотермінал як керуючий термінал дочірнього процесу. Повертає пару `(pid, fd)`, де pid є `0` у дочірньому, ідентифікатор нового дочірнього процесу в батьківському, а fd є дескриптором файлу головного кінця псевдотермінал. Для більш портативного підходу використовуйте модуль `pty`. У разі виникнення помилки виникає `OSError`.

  The returned file descriptor fd is non-inheritable.

  Викликає подію аудиту `os.forkpty` без аргументів.

  Попередження

  On macOS the use of this function is unsafe when mixed with using higher-level system APIs, and that includes using `urllib.request`.

  Змінено в версії 3.8: Виклик `forkpty()` у підінтерпретаторі більше не підтримується (виникає `RuntimeError`).

  Змінено в версії 3.12: If Python is able to detect that your process has multiple threads, this now raises a `DeprecationWarning`. See the longer explanation on `os.fork()`.

  Змінено в версії 3.15: The returned file descriptor is now made non-inheritable.

  Availability: Unix, not WASI, not Android, not iOS.

os.kill(pid, sig, /)

  Надішліть сигнал sig процесу pid. Константи для конкретних сигналів, доступних на хост-платформі, визначаються в модулі `signal`.

  Windows: The `signal.CTRL_C_EVENT` and `signal.CTRL_BREAK_EVENT` signals are special signals which can only be sent to console processes which share a common console window, e.g., some subprocesses. Any other value for sig will cause the process to be unconditionally killed by the TerminateProcess API, and the exit code will be set to sig.

  Дивіться також `signal.pthread_kill()`.

  Викликає подію аудиту `os.kill` з аргументами `pid`, `sig`.

  Availability: Unix, Windows, not WASI, not iOS.

  Змінено в версії 3.2: Додана підтримка Windows.

os.killpg(pgid, sig, /)

  Надішліть сигнал sig до групи процесів pgid.

  Викликає подію аудиту `os.killpg` з аргументами `pgid`, `sig`.

  Availability: Unix, not WASI, not iOS.

os.nice(increment, /)

  Додайте приріст до «витонченості» процесу. Поверніть нову привабливість.

  Availability: Unix, not WASI.

os.pidfd_open(pid, flags=0)

  Return a file descriptor referring to the process pid with flags set. This descriptor can be used to perform process management without races and signals.

  Додаткову інформацію можна знайти на сторінці довідки pidfd_open(2).

  Availability: Linux >= 5.3, Android >= `build-time` API level 31

  Added in version 3.9.

  os.PIDFD_NONBLOCK

    This flag indicates that the file descriptor will be non-blocking. If the process referred to by the file descriptor has not yet terminated, then an attempt to wait on the file descriptor using waitid(2) will immediately return the error `EAGAIN` rather than blocking.

  Availability: Linux >= 5.10

  Added in version 3.12.

os.plock(op, /)

  Блокування сегментів програми в пам’яті. Значення op (визначене в `<sys/lock.h>`) визначає, які сегменти заблоковано.

  Availability: Unix, not WASI, not iOS.

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

  Open a pipe to or from command cmd. The return value is an open file object connected to the pipe, which can be read or written depending on whether mode is `'r'` (default) or `'w'`. The buffering argument have the same meaning as the corresponding argument to the built-in `open()` function. The returned file object reads or writes text strings rather than bytes.

  Метод `close` повертає `None`, якщо підпроцес завершився успішно, або код повернення підпроцесу, якщо сталася помилка. У системах POSIX, якщо код повернення позитивний, він представляє значення, що повертається процесом, зміщене вліво на один байт. Якщо код повернення від’ємний, це означає, що процес було припинено за допомогою сигналу, поданого зведеним значенням коду повернення. (Наприклад, значення, що повертається, може бути `- signal.SIGKILL`, якщо підпроцес було закрито.) У системах Windows значення, що повертається, містить цілочисельний код повернення зі знаком від дочірнього процесу.

  В Unix `waitstatus_to_exitcode()` можна використовувати для перетворення результату методу `close` (статус виходу) у код виходу, якщо він не `None`. У Windows результатом методу `close` є безпосередньо код виходу (або `None`).

  Це реалізовано за допомогою `subprocess.Popen`; перегляньте документацію цього класу, щоб дізнатися про більш потужні способи керування підпроцесами та спілкування з ними.

  Availability: not WASI, not Android, not iOS.

  Примітка

  The Python UTF-8 Mode affects encodings used for cmd and pipe contents.

  `popen()` is a simple wrapper around `subprocess.Popen`. Use `subprocess.Popen` or `subprocess.run()` to control options like encodings.

  Застаріло починаючи з версії 3.14: The function is soft deprecated and should no longer be used to write new code. The `subprocess` module is recommended instead.

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

  Wraps the `posix_spawn()` C library API for use from Python.

  Більшість користувачів повинні використовувати `subprocess.run()` замість `posix_spawn()`.

  The positional-only arguments path, args, and env are similar to `execve()`. env is allowed to be `None`, in which case current process“ environment is used.

  Параметр 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)

    Виконує `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)

    Performs `os.closerange(fd, INF)`.

  These tuples correspond to the C library `posix_spawn_file_actions_addopen()`, `posix_spawn_file_actions_addclose()`, `posix_spawn_file_actions_adddup2()`, and `posix_spawn_file_actions_addclosefrom_np()` API calls used to prepare for the `posix_spawn()` call itself.

  The setpgroup argument will set the process group of the child to the value specified. If the value specified is 0, the child’s process group ID will be made the same as its process ID. If the value of setpgroup is not set, the child will inherit the parent’s process group ID. This argument corresponds to the C library `POSIX_SPAWN_SETPGROUP` flag.

  If the resetids argument is `True` it will reset the effective UID and GID of the child to the real UID and GID of the parent process. If the argument is `False`, then the child retains the effective UID and GID of the parent. In either case, if the set-user-ID and set-group-ID permission bits are enabled on the executable file, their effect will override the setting of the effective UID and GID. This argument corresponds to the C library `POSIX_SPAWN_RESETIDS` flag.

  If the setsid argument is `True`, it will create a new session ID for `posix_spawn`. setsid requires `POSIX_SPAWN_SETSID` or `POSIX_SPAWN_SETSID_NP` flag. Otherwise, `NotImplementedError` is raised.

  The setsigmask argument will set the signal mask to the signal set specified. If the parameter is not used, then the child inherits the parent’s signal mask. This argument corresponds to the C library `POSIX_SPAWN_SETSIGMASK` flag.

  The sigdef argument will reset the disposition of all signals in the set specified. This argument corresponds to the C library `POSIX_SPAWN_SETSIGDEF` flag.

  The scheduler argument must be a tuple containing the (optional) scheduler policy and an instance of `sched_param` with the scheduler parameters. A value of `None` in the place of the scheduler policy indicates that is not being provided. This argument is a combination of the C library `POSIX_SPAWN_SETSCHEDPARAM` and `POSIX_SPAWN_SETSCHEDULER` flags.

  Викликає подію аудиту `os.posix_spawn` з аргументами `path`, `argv`, `env`.

  Added in version 3.8.

  Змінено в версії 3.13: env parameter accepts `None`. `os.POSIX_SPAWN_CLOSEFROM` is available on platforms where `posix_spawn_file_actions_addclosefrom_np()` exists.

  Availability: 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)

  Wraps the `posix_spawnp()` C library API for use from Python.

  Подібно до `posix_spawn()`, за винятком того, що система шукає виконуваний файл у списку каталогів, визначених змінною середовища `PATH` (так само, як і для `execvp(3)` ).

  Викликає подію аудиту `os.posix_spawn` з аргументами `path`, `argv`, `env`.

  Added in version 3.8.

  Availability: POSIX, not WASI, not Android, not iOS.

  See `posix_spawn()` documentation.

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()`.

  Немає способу скасувати реєстрацію функції.

  Availability: Unix, not WASI, not Android, not iOS.

  Added in version 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.

  The «l» and «v» variants of the `spawn*` functions differ in how command-line arguments are passed. The «l» variants are perhaps the easiest to work with if the number of parameters is fixed when the code is written; the individual parameters simply become additional parameters to the `spawnl*()` functions. The «v» variants are good when the number of parameters is variable, with the arguments being passed in a list or tuple as the args parameter. In either case, the arguments to the child process must start with the name of the command being run.

  Варіанти, які включають друге «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`.

  Availability: Unix, Windows, not WASI, not Android, not iOS.

  `spawnlp()`, `spawnlpe()`, `spawnvp()` and `spawnvpe()` are not available on Windows. `spawnle()` and `spawnve()` are not thread-safe on Windows; we advise you to use the `subprocess` module instead.

  Змінено в версії 3.6: Приймає path-like object.

  Застаріло починаючи з версії 3.14: These functions are soft deprecated and should no longer be used to write new code. The `subprocess` module is recommended instead.

os.P_NOWAIT
os.P_NOWAITO

  Possible values for the mode parameter to the `spawn*` family of functions. If either of these values is given, the `spawn*` functions will return as soon as the new process has been created, with the process id as the return value.

  Availability: Unix, Windows.

os.P_WAIT

  Possible value for the mode parameter to the `spawn*` family of functions. If this is given as mode, the `spawn*` functions will not return until the new process has run to completion and will return the exit code of the process the run is successful, or `-signal` if a signal kills the process.

  Availability: Unix, Windows.

os.P_DETACH
os.P_OVERLAY

  Можливі значення для параметра mode для сімейства функцій `spawn*`. Вони менш портативні, ніж перелічені вище. `P_DETACH` подібний до `P_NOWAIT`, але новий процес від’єднується від консолі процесу, що викликає. Якщо `P_OVERLAY` використовується, поточний процес буде замінено; функція `spawn*` не повернеться.

  Availability: Windows.

os.startfile(path[, operation][, arguments][, cwd][, show_cmd])

  Запустіть файл із пов’язаною програмою.

  When operation is not specified, this acts like double-clicking the file in Windows Explorer, or giving the file name as an argument to the start command from the interactive command shell: the file is opened with whatever application (if any) its extension is associated.

  When another operation is given, it must be a «command verb» that specifies what should be done with the file. Common verbs documented by Microsoft are `'open'`, `'print'` and `'edit'` (to be used on files) as well as `'explore'` and `'find'` (to be used on directories).

  Під час запуску програми вкажіть аргументи, які передаються як один рядок. Цей аргумент може не мати ефекту під час використання цієї функції для запуску документа.

  Робочий каталог за замовчуванням успадковується, але може бути перевизначений аргументом cwd. Це має бути абсолютний шлях. Відносний шлях буде вирішено проти цього аргументу.

  Use show_cmd to override the default window style. Whether this has any effect will depend on the application being launched. Values are integers as supported by the Win32 `ShellExecute()` function.

  `startfile()` повертається, щойно буде запущено відповідну програму. Немає можливості чекати, поки програма закриється, і немає способу отримати статус виходу програми. Параметр path відноситься до поточного каталогу або cwd. Якщо ви хочете використовувати абсолютний шлях, переконайтеся, що перший символ не є скісною рискою (`'/'`). Використовуйте `pathlib` або функцію `os.path.normpath()`, щоб переконатися, що шляхи правильно закодовані для Win32.

  To reduce interpreter startup overhead, the Win32 `ShellExecute()` function is not resolved until this function is first called. If the function cannot be resolved, `NotImplementedError` will be raised.

  Викликає подію аудиту `os.startfile` з аргументами `path`, `operation`.

  Викликає подію аудиту `os.startfile/2` з аргументами `path`, `operation`, `arguments`, `cwd`, `show_cmd` .

  Availability: Windows.

  Змінено в версії 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 recommended to using this function. See the Replacing Older Functions with the subprocess Module section in the `subprocess` documentation for some helpful recipes.

  В Unix `waitstatus_to_exitcode()` можна використовувати для перетворення результату (статус виходу) у код виходу. У Windows результатом є безпосередньо код виходу.

  Викликає подію аудиту `os.system` з аргументом `command`.

  Availability: Unix, Windows, not WASI, not Android, not iOS.

os.times()

  Повертає поточний глобальний час процесу. Повернене значення є об’єктом із п’ятьма атрибутами:

  - `user` - час користувача

  - `system` - системний час

  - `children_user` - час користувача всіх дочірніх процесів

  - `children_system` - системний час усіх дочірніх процесів

  - `elapsed` - реальний час, що минув від фіксованої точки в минулому

  Для зворотної сумісності цей об’єкт також поводиться як п’ять кортежів, що містять `user`, `system`, `children_user`, `children_system` і `минало` в такому порядку.

  See the Unix manual page times(2) and times(3) manual page on Unix or the GetProcessTimes MSDN on Windows. On Windows, only `user` and `system` are known; the other attributes are zero.

  Availability: Unix, Windows.

  Змінено в версії 3.3: Тип повернення змінено з кортежу на кортежний об’єкт з іменованими атрибутами.

os.wait()

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

  If there are no children that could be waited for, `ChildProcessError` is raised.

  `waitstatus_to_exitcode()` можна використовувати для перетворення статусу виходу в код виходу.

  Availability: Unix, not WASI, not Android, not iOS.

  Дивись також

  The other `wait*()` functions documented below can be used to wait for the completion of a specific child process and have more options. `waitpid()` is the only one also available on Windows.

os.waitid(idtype, id, options, /)

  Wait for the completion of a child process.

  idtype can be `P_PID`, `P_PGID`, `P_ALL`, or (on Linux) `P_PIDFD`. The interpretation of id depends on it; see their individual descriptions.

  options is an OR combination of flags. At least one of `WEXITED`, `WSTOPPED` or `WCONTINUED` is required; `WNOHANG` and `WNOWAIT` are additional optional flags.

  The return value is an object representing the data contained in the `siginfo_t` structure with the following attributes:

  - `si_pid` (process ID)

  - `si_uid` (real user ID of the child)

  - `si_signo` (always `SIGCHLD`)

  - `si_status` (the exit status or signal number, depending on `si_code`)

  - `si_code` (see `CLD_EXITED` for possible values)

  If `WNOHANG` is specified and there are no matching children in the requested state, `None` is returned. Otherwise, if there are no matching children that could be waited for, `ChildProcessError` is raised.

  Availability: Unix, not WASI, not Android, not iOS.

  Added in version 3.3.

  Змінено в версії 3.13: This function is now available on macOS as well.

os.waitpid(pid, options, /)

  Деталі цієї функції відрізняються в Unix і Windows.

  В Unix: зачекайте на завершення дочірнього процесу, заданого ідентифікатором процесу pid, і поверніть кортеж, що містить ідентифікатор його процесу та вказівку статусу виходу (закодовано як для `wait()`). На семантику виклику впливає значення цілого числа options, яке має бути `0` для нормальної роботи.

  Якщо pid більший за `0`, `waitpid()` запитує інформацію про статус для цього конкретного процесу. Якщо pid дорівнює `0`, запит стосується статусу будь-якого дочірнього елемента в групі поточного процесу. Якщо pid має значення `-1`, запит стосується будь-якого дочірнього процесу поточного процесу. Якщо pid менший за `-1`, статус запитується для будь-якого процесу в групі процесів `-pid` (абсолютне значення pid).

  options is an OR combination of flags. If it contains `WNOHANG` and there are no matching children in the requested state, `(0, 0)` is returned. Otherwise, if there are no matching children that could be waited for, `ChildProcessError` is raised. Other options that can be used are `WUNTRACED` and `WCONTINUED`.

  У Windows: дочекайтеся завершення процесу, заданого дескриптором процесу pid, і поверніть кортеж, що містить pid, а його статус виходу зміщений вліво на 8 біт (зміщення полегшує використання функції на різних платформах). pid менше або дорівнює `0` не має особливого значення в Windows і викликає виключення. Значення цілого параметра не впливає. pid може посилатися на будь-який процес, ідентифікатор якого відомий, не обов’язково дочірній процес. Функції `spawn*`, викликані за допомогою `P_NOWAIT`, повертають відповідні дескриптори процесу.

  `waitstatus_to_exitcode()` можна використовувати для перетворення статусу виходу в код виходу.

  Availability: Unix, Windows, not WASI, not Android, not iOS.

  Змінено в версії 3.5: Якщо системний виклик перервано, а обробник сигналу не викликає виключення, функція тепер повторює системний виклик замість того, щоб викликати виняток `InterruptedError` (перегляньте PEP 475 для обґрунтування).

os.wait3(options)

  Similar to `waitpid()`, except no process id argument is given and a 3-element tuple containing the child’s process id, exit status indication, and resource usage information is returned. Refer to `resource.getrusage()` for details on resource usage information. The options argument is the same as that provided to `waitpid()` and `wait4()`.

  `waitstatus_to_exitcode()` можна використовувати для перетворення статусу виходу в код виходу.

  Availability: Unix, not WASI, not Android, not iOS.

os.wait4(pid, options)

  Similar to `waitpid()`, except a 3-element tuple, containing the child’s process id, exit status indication, and resource usage information is returned. Refer to `resource.getrusage()` for details on resource usage information. The arguments to `wait4()` are the same as those provided to `waitpid()`.

  `waitstatus_to_exitcode()` можна використовувати для перетворення статусу виходу в код виходу.

  Availability: Unix, not WASI, not Android, not iOS.

os.P_PID
os.P_PGID
os.P_ALL
os.P_PIDFD

  These are the possible values for idtype in `waitid()`. They affect how id is interpreted:

  - `P_PID` - wait for the child whose PID is id.

  - `P_PGID` - wait for any child whose progress group ID is id.

  - `P_ALL` - wait for any child; id is ignored.

  - `P_PIDFD` - wait for the child identified by the file descriptor id (a process file descriptor created with `pidfd_open()`).

  Availability: Unix, not WASI, not Android, not iOS.

  Примітка

  `P_PIDFD` is only available on Linux >= 5.4.

  Added in version 3.3.

  Added in version 3.9: The `P_PIDFD` constant.

os.WCONTINUED

  This options flag for `waitpid()`, `wait3()`, `wait4()`, and `waitid()` causes child processes to be reported if they have been continued from a job control stop since they were last reported.

  Availability: Unix, not WASI, not Android, not iOS.

os.WEXITED

  This options flag for `waitid()` causes child processes that have terminated to be reported.

  The other `wait*` functions always report children that have terminated, so this option is not available for them.

  Availability: Unix, not WASI, not Android, not iOS.

  Added in version 3.3.

os.WSTOPPED

  This options flag for `waitid()` causes child processes that have been stopped by the delivery of a signal to be reported.

  This option is not available for the other `wait*` functions.

  Availability: Unix, not WASI, not Android, not iOS.

  Added in version 3.3.

os.WUNTRACED

  This options flag for `waitpid()`, `wait3()`, and `wait4()` causes child processes to also be reported if they have been stopped but their current state has not been reported since they were stopped.

  This option is not available for `waitid()`.

  Availability: Unix, not WASI, not Android, not iOS.

os.WNOHANG

  This options flag causes `waitpid()`, `wait3()`, `wait4()`, and `waitid()` to return right away if no child process status is available immediately.

  Availability: Unix, not WASI, not Android, not iOS.

os.WNOWAIT

  This options flag causes `waitid()` to leave the child in a waitable state, so that a later `wait*()` call can be used to retrieve the child status information again.

  This option is not available for the other `wait*` functions.

  Availability: 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

  These are the possible values for `si_code` in the result returned by `waitid()`.

  Availability: Unix, not WASI, not Android, not iOS.

  Added in version 3.3.

  Змінено в версії 3.9: Додано значення `CLD_KILLED` і `CLD_STOPPED`.

os.waitstatus_to_exitcode(status)

  Перетворення статусу очікування на код виходу.

  В Unix:

  - Якщо процес закінчився нормально (якщо `WIFEXITED(статус)` має значення true), повертає статус виходу процесу (повертає `WEXITSTATUS(статус)`): результат більше або дорівнює 0.

  - Якщо процес було припинено через сигнал (якщо `WIFSIGNALED(status)` має значення true), повертає `-signum`, де signum — це номер сигналу, який спричинив завершення процесу (повертає `- WTERMSIG(статус)`): результат менше 0.

  - Інакше викличте `ValueError`.

  У Windows повертає статус, зміщений праворуч на 8 біт.

  В Unix, якщо процес відстежується або якщо `waitpid()` було викликано з опцією `WUNTRACED`, абонент повинен спочатку перевірити, чи `WIFSTOPPED(status)` є істинним. Цю функцію не можна викликати, якщо `WIFSTOPPED(статус)` має значення true.

  Дивись також

  Функції `WIFEXITED()`, `WEXITSTATUS()`, `WIFSIGNALED()`, `WTERMSIG()`, `WIFSTOPPED()`, `WSTOPSIG()`.

  Availability: Unix, Windows, not WASI, not Android, not iOS.

  Added in version 3.9.

Наступні функції приймають код стану процесу, який повертає `system()`, `wait()` або `waitpid()` як параметр. Вони можуть бути використані для визначення розташування процесу.

os.WCOREDUMP(status, /)

  Повертає `True`, якщо для процесу було створено дамп ядра, інакше повертає `False`.

  Цю функцію слід використовувати, лише якщо `WIFSIGNALED()` має значення true.

  Availability: Unix, not WASI, not Android, not iOS.

os.WIFCONTINUED(status)

  Return `True` if a stopped child has been resumed by delivery of `SIGCONT` (if the process has been continued from a job control stop), otherwise return `False`.

  Перегляньте параметр `WCONTINUED`.

  Availability: Unix, not WASI, not Android, not iOS.

os.WIFSTOPPED(status)

  Повертає `True`, якщо процес було зупинено доставкою сигналу, інакше повертає `False`.

  `WIFSTOPPED()` повертає `True`, лише якщо виклик `waitpid()` було виконано за допомогою параметра `WUNTRACED` або коли процес відстежується (див. ptrace(2) ).

  Availability: Unix, not WASI, not Android, not iOS.

os.WIFSIGNALED(status)

  Повертає `True`, якщо процес було припинено сигналом, інакше повертає `False`.

  Availability: Unix, not WASI, not Android, not iOS.

os.WIFEXITED(status)

  Повертає `True`, якщо процес завершився нормально, тобто викликом `exit()` чи `_exit()`, або шляхом повернення з `main()`; інакше повертає `False`.

  Availability: Unix, not WASI, not Android, not iOS.

os.WEXITSTATUS(status)

  Повернути статус виходу процесу.

  Цю функцію слід використовувати, лише якщо `WIFEXITED()` має значення true.

  Availability: Unix, not WASI, not Android, not iOS.

os.WSTOPSIG(status)

  Повернути сигнал, який спричинив зупинку процесу.

  Цю функцію слід використовувати, лише якщо `WIFSTOPPED()` має значення true.

  Availability: Unix, not WASI, not Android, not iOS.

os.WTERMSIG(status)

  Повертає номер сигналу, який викликав завершення процесу.

  Цю функцію слід використовувати, лише якщо `WIFSIGNALED()` має значення true.

  Availability: Unix, not WASI, not Android, not iOS.

## Інтерфейс до планувальника

Ці функції контролюють, як процес розподіляє процесорний час операційною системою. Вони доступні лише на деяких платформах Unix. Щоб отримати детальнішу інформацію, зверніться до сторінок довідки Unix.

Added in version 3.3.

Наведені нижче політики планування доступні, якщо вони підтримуються операційною системою.

os.SCHED_OTHER

  Політика планування за умовчанням.

os.SCHED_BATCH

  Політика планування процесів із інтенсивним використанням ЦП, яка намагається зберегти інтерактивність решти комп’ютера.

os.SCHED_DEADLINE

  Scheduling policy for tasks with deadline constraints.

  Added in version 3.14.

os.SCHED_IDLE

  Політика планування для фонових завдань із надзвичайно низьким пріоритетом.

os.SCHED_NORMAL

  Alias for `SCHED_OTHER`.

  Added in version 3.14.

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()

  Voluntarily relinquish the CPU. See sched_yield(2) for details.

os.sched_setaffinity(pid, mask, /)

  Обмежте процес за допомогою PID pid (або поточного процесу, якщо дорівнює нулю) набору ЦП. mask — це ітерація цілих чисел, що представляють набір процесорів, якими має бути обмежений процес.

os.sched_getaffinity(pid, /)

  Return the set of CPUs the process with PID pid is restricted to.

  If pid is zero, return the set of CPUs the calling thread of the current process is restricted to.

  See also the `process_cpu_count()` function.

## Різна системна інформація

os.confstr(name, /)

  Повертає рядкові значення конфігурації системи. name вказує значення конфігурації для отримання; це може бути рядок, який є назвою визначеного системного значення; ці імена вказані в ряді стандартів (POSIX, Unix 95, Unix 98 та ін.). Деякі платформи також визначають додаткові імена. Імена, відомі головній операційній системі, надаються як ключі словника `confstr_names`. Для змінних конфігурації, не включених до цього відображення, також допускається передача цілого числа для name.

  Якщо значення конфігурації, указане name, не визначено, повертається `None`.

  Якщо name є рядком і невідоме, виникає `ValueError`. Якщо певне значення для name не підтримується хост-системою, навіть якщо воно включене в `confstr_names`, виникає `OSError` з `errno.EINVAL` для номера помилки .

  Availability: Unix.

os.confstr_names

  Словник зіставляє імена, прийняті `confstr()`, до цілих значень, визначених для цих імен головною операційною системою. Це можна використовувати для визначення набору імен, відомих системі.

  Availability: Unix.

os.cpu_count()

  Return the number of logical CPUs in the system. Returns `None` if undetermined.

  The `process_cpu_count()` function can be used to get the number of logical CPUs usable by the calling thread of the current process.

  Added in version 3.4.

  Змінено в версії 3.13: If `-X cpu_count` is given or `PYTHON_CPU_COUNT` is set, `cpu_count()` returns the override value n.

os.getloadavg()

  Повертає середню кількість процесів у черзі виконання системи за останні 1, 5 і 15 хвилин або викликає `OSError`, якщо середнє значення завантаження неможливо отримати.

  Availability: Unix.

os.process_cpu_count()

  Get the number of logical CPUs usable by the calling thread of the current process. Returns `None` if undetermined. It can be less than `cpu_count()` depending on the CPU affinity.

  The `cpu_count()` function can be used to get the number of logical CPUs in the system.

  If `-X cpu_count` is given or `PYTHON_CPU_COUNT` is set, `process_cpu_count()` returns the override value n.

  See also the `sched_getaffinity()` function.

  Added in version 3.13.

os.sysconf(name, /)

  Повертає цілочисельні значення конфігурації системи. Якщо значення конфігурації, указане name, не визначено, повертається `-1`. Коментарі щодо параметра name для `confstr()` також застосовуються тут; словник, який надає інформацію про відомі імена, надається `sysconf_names`.

  Availability: Unix.

os.sysconf_names

  Словник зіставляє імена, прийняті `sysconf()`, до цілих значень, визначених для цих імен головною операційною системою. Це можна використовувати для визначення набору імен, відомих системі.

  Availability: Unix.

  Змінено в версії 3.11: Add `'SC_MINSIGSTKSZ'` name.

Наступні значення даних використовуються для підтримки операцій маніпулювання шляхом. Вони визначені для всіх платформ.

Операції вищого рівня над іменами шляхів визначені в модулі `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).

  Added in version 3.3.

## Випадкові числа

os.getrandom(size, flags=0)

  Отримайте до size випадкових байтів. Функція може повертати менше байтів, ніж вимагається.

  Ці байти можна використовувати для заповнення генераторів випадкових чисел у просторі користувача або для криптографічних цілей.

  `getrandom()` покладається на ентропію, зібрану з драйверів пристроїв та інших джерел шуму навколишнього середовища. Невиправдане зчитування великої кількості даних матиме негативний вплив на інших користувачів пристроїв `/dev/random` і `/dev/urandom`.

  The flags argument is a bit mask that can contain zero or more of the following values ORed together: `os.GRND_RANDOM` and `GRND_NONBLOCK`.

  See also the Linux getrandom() manual page.

  Availability: Linux >= 3.17.

  Added in version 3.6.

os.urandom(size, /)

  Повертає байтовий рядок розміру випадкових байтів, придатних для криптографічного використання.

  Ця функція повертає випадкові байти зі специфічного для ОС джерела випадковості. Повернуті дані мають бути досить непередбачуваними для криптографічних програм, хоча їх точна якість залежить від реалізації ОС.

  У Linux, якщо доступний системний виклик `getrandom()`, він використовується в режимі блокування: блокуйте, доки системний пул випадкової ентропії не буде ініціалізовано (128 біт ентропії збирає ядро). Перегляньте PEP 524 для обґрунтування. У Linux функція `getrandom()` може бути використана для отримання випадкових байтів у неблокуючому режимі (використовуючи прапор `GRND_NONBLOCK`) або для опитування, доки системний пул випадкової ентропії не буде ініціалізовано.

  У Unix-подібній системі випадкові байти зчитуються з пристрою `/dev/urandom`. Якщо пристрій `/dev/urandom` недоступний або не читається, виникає виняток `NotImplementedError`.

  On Windows, it will use `BCryptGenRandom()`.

  Дивись також

  Модуль `secrets` забезпечує функції вищого рівня. Про простий у використанні інтерфейс генератора випадкових чисел, наданий вашою платформою, див. `random.SystemRandom`.

  Змінено в версії 3.5: У Linux 3.17 і новіших версіях системний виклик `getrandom()` тепер використовується, якщо він доступний. У OpenBSD 5.6 і новіших версіях тепер використовується функція C `getentropy()`. Ці функції уникають використання внутрішнього файлового дескриптора.

  Змінено в версії 3.5.2: У Linux, якщо системний виклик `getrandom()` блокує (пул ентропії urandom ще не ініціалізовано), поверніться до читання `/dev/urandom`.

  Змінено в версії 3.6: У Linux `getrandom()` тепер використовується в режимі блокування для підвищення безпеки.

  Змінено в версії 3.11: On Windows, `BCryptGenRandom()` is used instead of `CryptGenRandom()` which is deprecated.

os.GRND_NONBLOCK

  За замовчуванням під час читання з `/dev/random` `getrandom()` блокує, якщо випадкові байти недоступні, а під час читання з `/dev/urandom` блокує, якщо пул ентропії не має ще не ініціалізовано.

  Якщо встановлено прапорець `GRND_NONBLOCK`, то `getrandom()` не блокує в цих випадках, а замість цього негайно викликає `BlockingIOError`.

  Added in version 3.6.

os.GRND_RANDOM

  Якщо цей біт установлено, випадкові байти витягуються з пулу `/dev/random` замість пулу `/dev/urandom`.

  Added in version 3.6.