gpt4 book ai didi

python - 如何在 python 中压缩文件而不写入所有目录

转载 作者:行者123 更新时间:2023-12-01 00:27:08 26 4
gpt4 key购买 nike

我正在尝试压缩多个文件,但当我打开 zip 文件时,我遇到了一个奇怪的问题,所有通往文件的目录也都列出了home/site/Uploads/test/

这是我写的Python代码

import os
import zipfile

zf = zipfile.ZipFile("myzipfile.zip", "w")
for dirname, subdirs, files in os.walk("D:/home/site/Uploads/test/"):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()

压缩文件很好,但为什么也列出了其他所有目录。

我得到了这样的zip文件-->首页-->站点-->上传-->测试-->file.txt我想要的是这个-->文件.txt

最佳答案

让我们假设以下目录结构:

./uploads
└── foo
└── bar
├── 1.txt
└── baz
└── 2.txt

您只需正确设置 arcname 即可:

import os
import zipfile

zf = zipfile.ZipFile("myzipfile.zip", "w")
for dirname, subdirs, files in os.walk("/tmp/uploads"):
for filename in files:
zf.write(os.path.join(dirname, filename), arcname=filename)
zf.close()

Unzip 显示 zip 文件,如下所示:

unzip -l myzipfile.zip                                                                                                                    Archive:  myzipfile.zip
Length Date Time Name
--------- ---------- ----- ----
0 10-21-2019 15:03 1.txt
0 10-21-2019 15:03 2.txt
--------- -------
0 2 files

关于python - 如何在 python 中压缩文件而不写入所有目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486174/

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