Adding file to existing zipfile

前端 未结 2 1730
有刺的猬
有刺的猬 2021-02-19 02:18

I\'m using python\'s zipfile module.
Having a zip file located in a path of:
/home/user/a/b/c/test.zip
And having another file created unde

相关标签:
2条回答
  • 2021-02-19 03:07
    import zipfile
    
    # Open a zip file at the given filepath. If it doesn't exist, create one.
    # If the directory does not exist, it fails with FileNotFoundError
    filepath = '/home/user/a/b/c/test.zip'
    with zipfile.ZipFile(filepath, 'a') as zipf:
        # Add a file located at the source_path to the destination within the zip
        # file. It will overwrite existing files if the names collide, but it
        # will give a warning
        source_path = '/home/user/a/b/c/1.txt'
        destination = 'foobar.txt'
        zipf.write(source_path, destination)
    
    0 讨论(0)
  • 2021-02-19 03:17

    You got very close:

    zip.write(path_to_file, os.path.basename(path_to_file))
    

    should do the trick for you.

    Explanation: The zip.write function accepts a second argument (the arcname) which is the filename to be stored in the zip archive, see the documentation for zipfile more details.

    os.path.basename() strips off the directories in the path for you, so that the file will be stored in the archive under just it's name.

    Note that if you only zip.write(os.path.basename(path_to_file)) it will look for the file in the current directory where it (as the error says) does not exist.

    0 讨论(0)
提交回复
热议问题