sending signals to the calling function

Tim Golden tim.golden at viacom-outdoor.co.uk
Mon Jun 28 05:24:31 EDT 2004


| I have a function that receive a list of files and creates a zip from
| these files. I want it to send signal to the calling function with the
| name of the file it currently compressing. is there a way to do this
| (without threads)?

Of course, just pass in a callback function, and call that
whenever a file is being compressed. Alternatively, make
the zipper-upper a generator which yields its current filename:

<code>

import os, sys
import zipfile

def zipup (zip_filename, list_of_files):
    archive = zipfile.ZipFile (zip_filename, "w")
    for filename in list_of_files:
        yield filename
        archive.write (filename)
    archive.close ()

if __name__ == '__main__':
    import glob
    file_pattern = os.path.join (sys.path[-1], "*")
    list_of_files = [f for f in glob.glob (file_pattern) if os.path.isfile
(f)]
    for zipping_file in zipup ("test.zip", list_of_files):
        print "About to zip", zipping_file

<code>

TJG


________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________




More information about the Python-list mailing list