pythonzipusdz

How to unzip .usdz file in python?


Is there a way to unzip a .usdz file in python? I was looking at the shutil.unpack_archive, but it looks like I can't use that without an existing function to unpack it. They use zip compression, just have a different file extension. Would just renaming them to have .zip extensions work? Is there a way to "tell" shutil that these are basically .zip files, something else I can use?

Running the Linux unzip command can unpack them, but due to my relative unfamiliarity with shell scripting and the file manipulation I'll need to do, I'd prefer to use python.


Solution

  • You can do this a couple ways.

    Use shutil.unpack_archive with the format="zip" argument, e.g.

    import shutil
    
    archive_path = "/path/to/archive.usdz"
    shutil.unpack_archive(archive_path, format="zip")
    
    # note you can also pass extract_dir keyword argument to
    # set where the files are extracted to
    

    You can also directly use the zipfile module:

    import zipfile
    
    archive_path = "/path/to/archive.usdz"
    zf = zipfile.ZipFile(archive_path)
    zf.extractall()
    
    # note that this extracts to the working directory unless you specify the path argument