CHAPTER 2
System Tools
“The os.path to Knowledge”
This chapter begins our in-depth look at ways to apply Python to real programming
tasks. In this and the following chapters, you’ll see how to use Python to write system
tools, GUIs, database applications, Internet scripts, websites, and more. Along the way,
we’ll also study larger Python programming concepts in action: code reuse, maintain-
ability, object-oriented programming (OOP), and so on.
In this first part of the book, we begin our Python programming tour by exploring
the systems application domain—scripts that deal with files, programs, and the general
environment surrounding a program. Although the examples in this domain focus on
particular kinds of tasks, the techniques they employ will prove to be useful in later
parts of the book as well. In other words, you should begin your journey here, unless
you are already a Python systems programming wizard.
Why Python Here?
Python’s system interfaces span application domains, but for the next five chapters,
most of our examples fall into the category of system tools—programs sometimes called
command-line utilities, shell scripts, system administration, systems programming,
and other permutations of such words. Regardless of their title, you are probably al-
ready familiar with this sort of script; these scripts accomplish such tasks as processing
files in a directory, launching test programs, and so on. Such programs historically have
been written in nonportable and syntactically obscure shell languages such as DOS
batch files, csh, and awk.
Even in this relatively simple domain, though, some of Python’s better attributes shine
brightly. For instance, Python’s ease of use and extensive built-in library make it simple
(and even fun) to use advanced system tools such as threads, signals, forks, sockets,
and their kin; such tools are much less accessible under the obscure syntax of shell
languages and the slow development cycles of compiled languages. Python’s support
for concepts like code clarity and OOP also help us write shell tools that can be read,
73
Do
wnload from Wow! eBook <www.wowebook.com>