python zipfile 压缩目录
程序员文章站
2022-05-31 17:26:02
...
Python3 zipfile 压缩目录,去除绝对路径,保留空目录
def ZIPData(path):
dest = os.path.join(os.path.split(path)[0], '%s.zip'%(os.path.basename(path)))
empty_dirs = []
lenDirPath = len(os.path.split(path)[0])
zipf = zipfile.ZipFile(dest, 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(path):
empty_dirs.extend([dir for dir in dirs if os.listdir(os.path.join(root, dir)) == []])
base = os.path.basename(root)
for file in files:
ph = os.path.join(root, file)
zipf.write(ph, ph[lenDirPath:])
for dir in empty_dirs:
ph = os.path.join(root, dir)
zif = zipfile.ZipInfo(ph[lenDirPath:] + "/")
zipf.writestr(zif, "")
empty_dirs = []
zipf.close()
if __name__ == '__main__':
ZIPData(r"E:\GitCode\testplus\doc\data")