本文实例讲述了python自动zip压缩目录的方法。分享给大家供大家参考。具体实现方法如下:
这段代码来压缩数据库备份文件,没有使用python内置的zip模块,而是使用了zip.exe文件
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 # 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."希望本文所述对大家的Python程序设计有所帮助。