解决python压缩zip文件时空文件夹被过滤的问题 您所在的位置:网站首页 解压文件夹是空的 解决python压缩zip文件时空文件夹被过滤的问题

解决python压缩zip文件时空文件夹被过滤的问题

2024-06-14 00:18| 来源: 网络整理| 查看: 265

最近用python对zip文件进行解压,处理后在压缩回去。解压的函数如下:

def Zip(dirname,zipfilename): filelist = [] if os.path.isfile(dirname): filelist.append(dirname) else : for root, dirs, files in os.walk(dirname,topdown=False): for name in files: filelist.append(os.path.join(root, name)) zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED) for tar in filelist: arcname = tar[len(dirname):] zf.write(tar,arcname) zf.close() return ''

发现再压缩时里面的空文件夹不见了,很是奇怪,原来是递归的时候过滤掉了。加上即可,判断是否为空的文件夹,是的话就加上:

if not files and not dirs: filelist.append(root)

完整代码如下:

def Zip(dirname,zipfilename): filelist = [] if os.path.isfile(dirname): filelist.append(dirname) else : for root, dirs, files in os.walk(dirname,topdown=False): if not files and not dirs: filelist.append(root) for name in files: filelist.append(os.path.join(root, name)) zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED) for tar in filelist: arcname = tar[len(dirname):] zf.write(tar,arcname) zf.close() return ''


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有