Packing and Unpacking Files
Many moons ago (about 10 years), I used machines that
had no tools for bundling files into a single package for easy transport. Here is the
situation: you have a large set of text files laying around that you
need to transfer to another computer. These days, tools like tar
are widely available for packaging many
files into a single file that can be copied, uploaded, mailed, or
otherwise transferred in a single step. As mentioned in an earlier
footnote, even Python itself has grown to support zip and tar archives
in the standard library (see the zipfile
and tarfile
modules in the library
reference).
Before I managed to install such tools on my PC, though, portable Python scripts served just as well. Example 6-6 copies all of the files listed on the command line to the standard output stream, separated by marker lines.
Example 6-6. PP3E\System\App\Clients\textpack.py
#!/usr/local/bin/python import sys # load the system module marker = ':'*10 + 'textpak=>' # hopefully unique separator def pack( ): for name in sys.argv[1:]: # for all command-line arguments input = open(name, 'r') # open the next input file print marker + name # write a separator line print input.read( ), # and write the file's contents if _ _name_ _ == '_ _main_ _': pack( ) # pack files listed on cmdline
The first line in this file is a Python comment (#...
), but it also gives the path to the
Python interpreter using the Unix executable-script trick discussed in
Chapter 3. If we give
textpack.py ...
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.