Python压缩、解压功能

本文介绍了Python中实现文件的压缩和解压缩操作,包括压缩文件的代码示例,以及解压缩文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、python压缩代码:

import os
import datetime
from zipfile import ZipFile
import zipfile
from os import listdir
from os.path import isfile,isdir,join

path_local = 'G:/test'          #本地需要压缩的文件
path_local_zip = 'G:/zip'       #本地压缩后的文件存放位置
path_zip=path_local_zip+'/'+'2019-02-25.zip' #压缩后的文件命名名称

path_list = [] #文件路径存入path_list
dir_list = []  #将文件名称存入dir_list

dirs = os.listdir(path_local.decode('utf8'))
print "Compressing ..."+path_zip.decode('utf8')
for dir in dirs:
    #  将前一天日期为前缀的所有文件夹提取出,将文件路径存入path_list,将文件名称存入dir_list
    if dir.startswith('2019-02-25'):              
        path_list.append((path_local.decode('utf8')+'/'+dir))
        dir_list.append(dir)
for i in range(len(path_list)):
    #  压缩
    zipCompress(path_list[i],dir_list[i],path_zip.decode('utf8'))

print("size:" + str(get_FileSize(changePath(path_zip.decode('utf8')))) + "MB")
print "compress success"

# 其中path_local.decode('utf8')是防止出现中文路径乱码

压缩功能:

def zipCompress(srcDir,dir_name,desZipfile):
    fp=zipfile.ZipFile(desZipfile, 'a', zipfile.ZIP_DEFLATED)
    addFileIntoZipfile(srcDir,dir_name,fp)
    fp.close()

def addFileIntoZipfile(srcDir,dir_name,fp):
    for dir_filename in listdir(srcDir):        
        subpath=join(srcDir,dir_filename)
        if isfile(subpath):
            fp.write(subpath,dir_name+'/'+dir_filename)
        elif isdir(subpath):
            fp.write(subpath)   
            addFileIntoZipfile(subpath,fp) 

文件绝对路径添加转义符

def changePath(filePath):
	path = ""
	for i in range(len(filePath)):
		if filePath[i] != "\\":
			path += filePath[i]
		else:
    		 path += "/"
	return path

获取文件的大小,结果保留两位小数,单位为MB

def get_FileSize(filePath):
    fsize = os.path.getsize(filePath)
    fsize = fsize/float(1024*1024)
    return round(fsize,2)

二、python解压缩代码:

from zipfile import ZipFile
import zipfile

path_local_zip = 'G:/zip'      #压缩文件路径
path_local = 'G:/test2'        #解压后的文件存放路径

print "decompress ..."
deCompression('2019-02-25.zip')
print "decompress success"

解压功能:

def deCompression(zip_name):
    z = zipfile.ZipFile(path_local_zip+'/'+zip_name, 'r')
    z.extractall(path=changePath(path_local+'/'+'2019-02-25')) #将解压后的文件目录重新命名
    z.close()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值