Python ZIP-压缩文件不会';我真的没有压缩文件

Python ZIP-压缩文件不会';我真的没有压缩文件,python,zip,zipfile,Python,Zip,Zipfile,我有一个简短的方法,它将文件路径和该路径中的文件名列表作为参数,并将所有这些文件压缩到一个归档文件中。问题是,它不是压缩文件,而是在归档文件中为我试图压缩的每个文件创建一个空目录。方法如下: def zip(self, file_path, filename_list): f = zipfile.ZipFile(file_path + '_converted_zip_archive.zip', 'w') for filename in filename_lis

我有一个简短的方法,它将文件路径和该路径中的文件名列表作为参数,并将所有这些文件压缩到一个归档文件中。问题是,它不是压缩文件,而是在归档文件中为我试图压缩的每个文件创建一个空目录。方法如下:

 def zip(self, file_path, filename_list):

        f = zipfile.ZipFile(file_path + '_converted_zip_archive.zip', 'w')
        for filename in filename_list:
            f.write(file_path, filename)

        f.close()
如果我打电话

zip('uploads/', ['test_1.txt', 'test_2.txt', 'test_3.txt'])
我最终得到一个归档文件,该文件具有以下目录:

/test_1.txt/
/test_2.txt/
/test_3.txt/

我在ZIP文件中创建了一堆空目录,而不是实际压缩这些文本文件,这有什么不对呢?

您将目录写入归档文件三次(使用三个不同的名称)。更明确地说,您正在将以下内容写入存档:

uploads/ as test_1.txt
uploads/ as test_2.txt
uploads/ as test_3.txt
你真的想这么做吗

def zip(self, file_path, filename_list):
    f = zipfile.ZipFile(file_path + '_converted_zip_archive.zip', 'w')
    for filename in filename_list:
        f.write(file_path + filename, filename)  # note the addition of filename here
    f.close()

是的,就是这样。谢谢@jcaine04太棒了!很高兴你弄明白了。