gpt4 book ai didi

python - ZIp 仅目录内容,不包括父目录

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:38 24 4
gpt4 key购买 nike

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

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

def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))

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

我试过修改它,但总是以无法理解的错误告终。

最佳答案

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()

Pathlib解决方案

from pathlib import Path 

def zipdir(parent_dir : str , ziph : ZipFile) -> None:

for file in Path(parent_dir).rglob('*'): # gets all child items
ziph.write(file, file.name)

关于python - ZIp 仅目录内容,不包括父目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42055873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com