The PyZipFile constructor takes the same parameters as the
ZipFile constructor. Instances have one method in addition to
those of ZipFile objects.
writepy(
pathname[, basename])
Search for files *.py and add the corresponding file to the
archive. The corresponding file is a *.pyo file if
available, else a *.pyc file, compiling if necessary. If the
pathname is a file, the filename must end with .py, and just
the (corresponding *.py[co]) file is added at the top level
(no path information). If it is a directory, and the directory is
not a package directory, then all the files *.py[co] are
added at the top level. If the directory is a package directory,
then all *.py[oc] are added under the package name as a file
path, and if any subdirectories are package directories, all of
these are added recursively. basename is intended for
internal use only. The writepy() method makes archives
with file names like this: