seymourgoestohollywood
seymourgoestohollywood

Reputation: 1167

Prevent zipfile writing directory to archive

I have the below to zip a file. the file zips correctly, but contains the folders within the zip. How can I just zip the file, whilst still being able to show where the file is located?

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)

Upvotes: 0

Views: 57

Answers (1)

DrHaze
DrHaze

Reputation: 1318

You can use the os module to change your working directory. This should work:

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)

Upvotes: 1

Related Questions