# Hello, this script is written in Python - http://www.python.org
#
# autozip.py 1.0p
#
# This script will scan a directory (and its subdirectories)
# and automatically zip files (according to their extensions).
#
# This script does not use Python internal ZIP routines.
# InfoZip's ZIP.EXE must be present in the path (InfoZip Dos version 2.3).
# (zip23x.zip at http://www.info-zip.org/pub/infozip/)
#
# Each file will be zipped under the same name (with the .zip extension)
# eg. toto.bak will be zipped to toto.zip
#
# This script is public domain. Feel free to reuse it.
# The author is:
#       Sebastien SAUVAGE
#       <sebsauvage at sebsauvage dot net>
#       http://sebsauvage.net
#
# More quick & dirty scripts are available at http://sebsauvage.net/python/
#
# Directory to scan is hardcoded at the end of the script.
# Extensions to ZIP are hardcoded below:
ext_list = ['.bak','.trn']

import os.path, string

def autozip( directory ):
    os.path.walk(directory,walk_callback,'')

def walk_callback(args,directory,files):
    print 'Scanning',directory
    for fileName in files:
        if os.path.isfile(os.path.join(directory,fileName)) and string.lower(os.path.splitext(fileName)[1]) in ext_list:
            zipMyFile ( os.path.join(directory,fileName) )

def zipMyFile ( fileName ):
    os.chdir( os.path.dirname(fileName) )
    zipFilename = os.path.splitext(os.path.basename(fileName))[0]+".zip"
    print '  Zipping to '+ zipFilename
    os.system('zip -mj9 "'+zipFilename+'" "'+fileName+'"')

autozip( r'C:\mydirectory' )
print "All done."
