您的位置:首页 > 编程语言 > Python开发

(原创)python zipfile实现压缩整个目录和子目录

2017-04-01 12:53 931 查看
python zipfile实现压缩整个目录和子目录
zipfile背景简介

核心原理DFS

代码实现

python zipfile实现压缩整个目录和子目录

zipfile背景简介

zipfile是python提供的一个简单高效的模块。可以用很迅速的方法来进行文件压缩和解压的过程。

细节性的内容可以查看zipfile的文档

zipfile文档

这里先介绍几个简单的方法

f = zipfile.ZipFile(output_path,'w',zipfile.ZIP_DEFLATED)
#参数说明:第一个参数为输出的路径,文件读写,压缩方式
f.write(path)
#path是相对路径
f.close()
#一个关键方法,只有调用了close之后才会保证完成压缩


核心原理DFS

利用的是对目录进行深度优先遍历,首先把第一级目录中的文件进行遍历,如果是文件,则把它连同当前路径一起加入result(list),如果是子目录,则在整个目录上继续DFS。直到所有的文件都被加入。

代码实现

def dfs_get_zip_file(input_path,result):

#
files = os.listdir(input_path)
for file in files:
if os.path.isdir(input_path+'/'+file):
dfs_get_zip_file(input_path+'/'+file,result)
else:
result.append(input_path+'/'+file)

def zip_path(input_path,output_path,output_name):

f = zipfile.ZipFile(output_path+'/'+output_name,'w',zipfile.ZIP_DEFLATED)
filelists = []
dfs_get_zip_file(input_path,filelists)
for file in filelists:
f.write(file)
f.close()
return output_path+r"/"+output_name
if __name__ == '__main__':
&nbs
4000
p;  zip_path(r"./working",'D:','wok.zip')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: