The os Module
As mentioned, os
contains all the usual
operating-system calls you may have used in your C programs and shell
scripts. Its calls deal with directories, processes, shell variables,
and the like. Technically, this module provides
POSIX tools -- a portable standard for
operating-system calls -- along with platform-independent
directory processing tools as nested module
os.path
. Operationally, os
serves as a largely portable interface to your computer’s
system calls: scripts written with os
and
os.path
can usually be run on any platform
unchanged.
In fact, if you read the os
module’s source
code, you’ll notice that it really just imports whatever
platform-specific system module you have on your computer (e.g.,
nt
, mac
,
posix
). See the file os.py
in
the Python source library directory -- it simply runs a
from*
statement to copy all names out of a
platform-specific module. By always importing os
instead of platform-specific modules, though, your scripts are mostly
immune to platform implementation differences.
The Big os Lists
Let’s take a quick look at the basic interfaces in
os
. If you inspect this module’s attributes
interactively, you get a huge list of names that will vary per Python
release, will likely vary per platform, and isn’t incredibly
useful until you’ve learned what each name means:
>>>import os
>>>dir(os)
['F_OK', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_RDONLY', 'O_RDWR', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', ...
Get Programming Python, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.