ZIp只有目录的内容,排除父 - Python

时间:2017-02-05 18:49:54

标签: python zip zipfile os.walk

我正在尝试压缩目录的内容,而不是压缩目录本身,但是我找不到明显的方法来做到这一点,而且我对python非常新,所以它对我来说基本上是德语。 这是我正在使用的代码,它成功地包含了父代和内容:

{{1}}

我已经尝试过修改它,但总是会遇到难以理解的错误。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

write有第二个参数 - 存档中的名称,即

ziph.write(os.path.join(root, file), file)

修改

#!/usr/bin/env python
import os
import zipfile

def zipdir(path, ziph):
    length = len(path)

    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        folder = root[length:] # path without "parent"
        for file in files:
            ziph.write(os.path.join(root, file), os.path.join(folder, file))

if __name__ == '__main__':
    zipf = zipfile.ZipFile('Testing.zip', 'w', zipfile.ZIP_DEFLATED)
    zipdir('android', zipf)
    zipf.close()