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.

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

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

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.

Send comments on this document to python-docs@python.org.