如何在Python中创建没有子文件夹的zip?

2024-05-06 11:44:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在/tmp/1234/中有一些文件,我正在使用Python创建一个zip:

def create_local_zip_file(zipjob_number, folder_path):
    zip_file_path = os.path.join('/tmp/', f'{zipjob_number}.zip')
    with ZipFile(zip_file_path, 'w') as zip_obj:
        for filename in glob.glob(os.path.join(folder_path, "*")):
            zip_obj.write(filename)
    return zip_file_path

这会创建一个zip文件,但当我解压缩创建的zip文件时,会得到一个名为tmp的文件夹,该文件夹又包含一个名为1234的文件夹,该文件夹随后包含这些文件

如何确保解压创建一个名为1234的文件夹,直接包含这些文件


1条回答
网友
1楼 · 发布于 2024-05-06 11:44:28

看起来您的每个文件名都包含文件夹,这就是为什么要将它们写入zipfile中的目录

您可以使用“arcname”参数在存档中为文件指定不同的名称

我可以通过字符串拆分找到一种方法,但是我可以建议改用pathlib。比如:

from pathlib import Path

...
for file in Path(folder_path).glob("*"):
    zip_obj.write(file, arcname=file.name)
...

相关问题 更多 >