Shell Environment Variables
Shell variables, sometimes known as environment
variables, are made available to Python scripts as os.environ
, a Python dictionary-like object
with one entry per variable setting in the shell. Shell variables live
outside the Python system; they are often set at your system prompt or
within startup files and typically serve as system-wide configuration
inputs to programs.
In fact, by now you should be familiar with a prime example: the
PYTHONPATH
module search path
setting is a shell variable used by Python to import modules. By
setting it once in your system startup files, its value is available
every time a Python program is run. Shell variables can also be set by
programs to serve as inputs to other programs in an application;
because their values are normally inherited by spawned programs, they
can be used as a simple form of interprocess communication.
Fetching Shell Variables
In Python, the surrounding shell environment becomes a simple
preset object, not special syntax. Indexing os.environ
by the desired shell variable’s
name string (e.g., os.environ['USER']
) is the moral
equivalent of adding a dollar sign before a variable name in most
Unix shells (e.g., $USER
), using
surrounding percent signs on DOS (%USER%
), and calling getenv("USER")
in a C program. Let’s start
up an interactive session to experiment:
>>>import os
>>>os.environ.keys( )
['WINBOOTDIR', 'PATH', 'USER', 'PP2HOME', 'CMDLINE', 'PYTHONPATH', 'BL*ER', 'X', 'TEMP', 'COMSPEC', 'PROMPT', ...
Get Programming Python, 3rd 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.