解决python压缩zip文件时空文件夹被过滤的问题 | 您所在的位置:网站首页 › 解压文件夹是空的 › 解决python压缩zip文件时空文件夹被过滤的问题 |
最近用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 实验室设备网 版权所有 |