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 in common use today. Simply copy your script to any machine you wish to use it on, and 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 hold of a list of the names of
the files you wish to process, and then step through that list with a
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
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 ...