Directory Tools
One of the more common tasks in the shell utilities domain is applying an operation to a set of files in a directory—a “folder” in Windows-speak. By running a script on a batch of files, we can automate (that is, script) tasks we might have to otherwise run repeatedly by hand.
For instance, suppose you need to search all of your Python
files in a development directory for a global variable name (perhaps
you’ve forgotten where it is used). There are many platform-specific
ways to do this (e.g., the grep
command in Unix), but Python scripts that accomplish such tasks will
work on every platform where Python works—Windows, Unix, Linux,
Macintosh, and just about any other platform commonly used today. If
you simply copy your script to any machine you wish to use it on, it
will work regardless of which other tools are available there.
Walking One Directory
The most common way to go about writing such tools is to first
grab a list of the names of the files you wish to process, and then
step through that list with a Python for loop, processing each file in turn.
The trick we need to learn here, then, is how to get such a
directory list within our scripts. There are at least three options:
running shell listing commands with os.popen, matching filename patterns with glob.glob, and getting directory listings
with os.listdir. They vary in
interface, result format, and portability.
Running shell listing commands with os.popen
Quick: how did you go about getting directory file ...