Accessing .zipx with Python
Question: I'm attempting to write a very simple script that counts the number of
entries/files a given ZIP file has, for some statistics.

I'm using the `zipfile` library, and I'm running into this problem where the
library appears not to support .zipx format.

    
    
    bash-3.1$ python zipcount.py t.zipx
    
    Traceback (most recent call last):
      File "zipcount.py", line 10, in <module>
        zipCount(file)
      File "zipcount.py", line 5, in zipCount
        with ZipFile(file, "r") as zf:
      File "c:\Python34\lib\zipfile.py", line 937, in __init__
        self._RealGetContents()
      File "c:\Python34\lib\zipfile.py", line 978, in _RealGetContents
        raise BadZipFile("File is not a zip file")
    zipfile.BadZipFile: File is not a zip file
    

Googling for help reveals that the `zipx` format is not the same as `zip`, and
so maybe I shouldn't be expecting this to work. Further googling though fails
to bring up a library that actually _can_ deal with `zipx`. Searching stack
overflow didn't find much either.

I can't possibly be the only person who wants to manipulate zipx files in
python, right? Any suggestions?


Answer: [chilkat](http://www.chilkatsoft.com/) might work for this. It's **_not a free
library_** but there is a 30 day trial. Here is an example from
<http://www.example-code.com/python/ppmd_compress_file.asp>:

    
    
    import sys
    import chilkat
    
    compress = chilkat.CkCompression()
    
    #  Any string argument automatically begins a 30-day trial.
    success = compress.UnlockComponent("30-day trial")
    if (success != True):
        print "Compression component unlock failed"
        sys.exit()
    
    compress.put_Algorithm("ppmd")
    
    #  Decompress back to the original:
    success = compress.DecompressFile("t.zipx", "t")
    if (success != True):
        print compress.lastErrorText()
        sys.exit()
    
    print "Success!"
    

The API documentation:
<http://www.chilkatsoft.com/refdoc/pythonCkCompressionRef.html>

