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文件夹下所有的文件)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值