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 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
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 ...
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.