python脚本编程:使用zip或者tar压缩和解压文件

python自带了zip和tar压缩和解压相关的工具模块,可以方便的进行(批量)压缩和解压文件或者文件夹。

代码

#coding=utf-8
import os
import zipfile
import tarfile

#压缩文件或文件夹为zip
def zip_dir(srcPath,dstname):
    zipHandle=zipfile.ZipFile(dstname,'w',zipfile.ZIP_DEFLATED)

    for dirpath,dirs,files in os.walk(srcPath):
        for filename in files:
            zipHandle.write(os.path.join(dirpath,filename)) #必须拼接完整文件名,这样保持目录层级
            print filename+" zip succeeded"

    zipHandle.close

#解压zip文件
def unzip_dir(srcname,dstPath):
    zipHandle=zipfile.ZipFile(srcname,"r")
    for filename in zipHandle.namelist():
        print filename
    zipHandle.extractall(dstPath) #解压到指定目录

    zipHandle.close()


#压缩文件夹尾tar.gz
def tar_dir(srcPath,dstname):
    tarHandle=tarfile.open(dstname,"w:gz")
    for dirpath,dirs,files in os.walk(srcPath):
        for filename in files:
            tarHandle.add(os.path.join(dirpath,filename))
            print filename+" tar succeeded"

    tarHandle.close()

#解压tar.gz文件到文件夹
def untar_dir(srcname,dstPath):
    tarHandle=tarfile.open(srcname,"r:gz")
    for filename in tarHandle.getnames():
        print filename
    tarHandle.extractall(dstPath)
    tarHandle.close()


if __name__ == "__main__":
    #zip_dir("./Victorian","./dstdir/Victorian.zip") #可以用绝对或者相对路径的文件名或文件夹名
    #unzip_dir("./Victorian.zip",".")
    #tar_dir("./Victorian","./dstdir/Victorian.tar.gz")
    untar_dir("./Victorian.tar.gz","./")

效果

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值