# 6.1 `os` -- Miscellaneous OS interfaces

This module provides a more portable way of using operating system (OS) dependent functionality than importing an OS dependent built-in module like `posix` or `nt`.

This module searches for an OS dependent built-in module like `mac` or `posix` and exports the same functions and data as found there. The design of all Python's built-in OS dependent modules is such that as long as the same functionality is available, it uses the same interface; e.g., the function `os.stat(path)` returns stat information about path in the same format (which happens to have originated with the POSIX interface).

Extensions peculiar to a particular OS are also available through the `os` module, but using them is of course a threat to portability!

Note that after the first time `os` is imported, there is no performance penalty in using functions from `os` instead of directly from the OS dependent built-in module, so there should be no reason not to use `os`!

The `os` module contains many functions and data values. The items below and in the following sub-sections are all available directly from the `os` module.

exception `error`
  This exception is raised when a function returns a system-related error (e.g., not for illegal argument types). This is also known as the built-in exception `OSError`. The accompanying value is a pair containing the numeric error code from `errno` and the corresponding string, as would be printed by the C function `perror()`. See the module `errno` , which contains names for the error codes defined by the underlying operating system.

  When exceptions are classes, this exception carries two attributes, `errno` and `strerror`. The first holds the value of the C `errno` variable, and the latter holds the corresponding error message from `strerror()`. For exceptions that involve a file system path (e.g. `chdir()` or `unlink()`), the exception instance will contain a third attribute, `filename`, which is the file name passed to the function.

  When exceptions are strings, the string for the exception is `'OSError'`.

`name`
  The name of the OS dependent module imported. The following names have currently been registered: `'posix'`, `'nt'`, `'dos'`, `'mac'`, `'os2'`, `'ce'`, `'java'`.

`path`
  The corresponding OS dependent standard module for pathname operations, e.g., `posixpath` or `macpath`. Thus, given the proper imports, `os.path.split(file)` is equivalent to but more portable than `posixpath.split(file)`. Note that this is also a valid module: it may be imported directly as `os.path`.

Subsections

- 6.1.1 Process Parameters
- 6.1.2 File Object Creation
- 6.1.3 File Descriptor Operations
- 6.1.4 Files and Directories
- 6.1.5 Process Management
- 6.1.6 Miscellaneous System Information