Standard Module os

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

When the optional built-in module posix is available, this module exports the same functions and data as posix; otherwise, it searches for an OS dependent built-in module like mac 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(file) returns stat info about a file in a format compatible 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!

In addition to whatever the correct OS dependent module exports, the following variables and functions are always exported by os:


\begin{datadesc}{name}
The name of the OS dependent module imported. The followi...
...istered: \code{'posix'}, \code{'nt'},
\code{'dos'}, \code{'mac'}.
\end{datadesc}


\begin{datadesc}{path}
The corresponding OS dependent standard module for pathna...
...ent to but
more portable than \code{posixpath.split(\var{file})}.
\end{datadesc}


\begin{datadesc}{curdir}
The constant string used by the OS to refer to the current directory,
e.g. \code{'.'} for POSIX or \code{':'} for the Mac.
\end{datadesc}


\begin{datadesc}{pardir}
The constant string used by the OS to refer to the parent directory,
e.g. \code{'..'} for POSIX or \code{'::'} for the Mac.
\end{datadesc}


\begin{datadesc}{sep}
The character used by the OS to separate pathname componen...
...lit()} and \code{os.path.join()}---but it is
occasionally useful.
\end{datadesc}


\begin{datadesc}{pathsep}
The character conventionally used by the OS to separat...
...de{\$PATH}), e.g.\ \code{':'} for POSIX or
\code{';'} for MS-DOS.
\end{datadesc}


\begin{datadesc}{defpath}
The default search path used by \code{os.exec*p*()} if the environment
doesn't have a \code{'PATH'} key.
\end{datadesc}


\begin{funcdesc}{execl}{path\, arg0\, arg1\, ...}
This is equivalent to
\code{os.execv(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
\end{funcdesc}


\begin{funcdesc}{execle}{path\, arg0\, arg1\, ...\, env}
This is equivalent to
\...
...os.execve(\var{path}, (\var{arg0}, \var{arg1}, ...), \var{env})}.
\end{funcdesc}


\begin{funcdesc}{execlp}{path\, arg0\, arg1\, ...}
This is equivalent to
\code{os.execvp(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
\end{funcdesc}


\begin{funcdesc}{execvp}{path\, args}
This is like \code{os.execv(\var{path}, \v...
...s. The directory list is obtained from
\code{os.environ['PATH']}.
\end{funcdesc}


\begin{funcdesc}{execvpe}{path\, args\, env}
This is a cross between \code{os.ex...
...)}.
The directory list is obtained from \code{\var{env}['PATH']}.
\end{funcdesc}

(The functions os.execv() and execve() are not documented here, since they are implemented by the OS dependent module. If the OS dependent module doesn't define either of these, the functions that rely on it will raise an exception. They are documented in the section on module posix, together with all other functions that os imports from the OS dependent module.)