Python實現文件壓縮

1、環境:

python 2.7

2、實現:

#!/usr/bin/env python
#coding:utf-8

import zipfile,os

#把整個文件夾內的文件打包成zip文件(包括壓縮路徑下的字文件夾的文件)
def compress(get_files_path, set_files_path):
    f = zipfile.ZipFile(set_files_path , 'w', zipfile.ZIP_DEFLATED )
    for dirpath, dirnames, filenames in os.walk( get_files_path ):      
        fpath = dirpath.replace(get_files_path,'') #注意2
        fpath = fpath and fpath + os.sep or ''     #注意2
        for filename in filenames: 
            f.write(os.path.join(dirpath,filename), fpath+filename)
    f.close()
    print "compress operate success"

if __name__=='__main__':
    get_files_path = "C:\\testzip1\\testzip2\\file" #需要壓縮的文件夾
    set_files_path = "C:\\testzip1\\testzip2\\test.zip" #存放的壓縮文件地址(注意:不能與上述壓縮文件夾一樣)
    compress(get_files_path, set_files_path) 

3、結果:

將會在指定文件夾形成相應壓縮文件。(例如:上述將會在c盤的zip文件夾下形成test.zip文件)

4、注意:

  1. 壓縮路徑及存放路徑不能一樣,不然容易形成死循環。
  2. fpath = dirpath.replace(get_files_path,”) 和 fpath = fpath and fpath + os.sep or ” 這兩句代碼是爲了對地址進行轉換,不然會從最外層文件夾開始進行壓縮。(例如:如果缺少這兩句,上述代碼形成的test.zip文件解壓後是 test->testzip1->testzip2->file文件下所有的文件。如果加上這兩句,則爲test->file文件夾下所有的文件)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章