防止 zipfile 写入目录以存档

Prevent zipfile writing directory to archive

我有下面的压缩文件。文件压缩正确,但包含压缩文件中的文件夹。我怎样才能只压缩文件,同时仍然能够显示文件所在的位置?

create_zip_path = "folder1\folder2\my_zip.zip"
file_to_add_to_zip = "folder1\folder2\my_file.txt"

zip_file(create_zip_path, file_to_add_to_zip)


def zip_file(create_zip_path, file_to_add_to_zip):
    import zipfile
    try:
        import zlib
        compression = zipfile.ZIP_DEFLATED
    except:
        compression = zipfile.ZIP_STORED

    modes = { zipfile.ZIP_DEFLATED: 'deflated',
              zipfile.ZIP_STORED:   'stored',
              }

    zf = zipfile.ZipFile(create_zip_path, mode='w')
    zf.write(file_to_add_to_zip, compress_type=compression)

您可以使用 os 模块来更改您的工作目录。这应该有效:

import os

print os.getcwd() #Your current working directory
os.chdir(os.getcwd() + '/folder1/folder2/') 
print os.getcwd() #Your new wordking dir

create_zip_path = "my_zip.zip"
file_to_add_to_zip = "my_file.txt"

zip_file(create_zip_path, file_to_add_to_zip)