Where can I suggest an enchantment for Python Zip lib?

durumdara durumdara at gmail.com
Fri Jun 8 03:18:00 EDT 2007


Hi Larry!

> durumdara wrote:
> You can easily find out roughly how many bytes are in your .ZIP archive
> by using following:
>
> zipbytes=Zobj.fp.tell()
>

The main problem is not this.
I want to write a backup software, and I want to:
- see the progress in the processing of the actual file
- abort the progress if I need it
If I compress small files, I don't have problems.
But with larger files (10-20 MB) I get problems, because the zipfile's
method is uninterruptable.
Only one way I have to control this: if I modify the ZipFile module.

dd

On Jun 7, 8:26 pm, Larry Bates <larry.ba... at websafe.com> wrote:
> Where Zobj is your zipfile instance.  You don't need a callback.
>
> Problem is ill defined for a better solution.  You don't know how much
> the "next" file will compress.  It may compress a lot, not at all or
> in some situations actually grow.  So it is difficult (impossible?) to
> know how many bytes are remaining.  I have a rough calculation where
> I limit the files to 2Gb, but you must set aside some space for the
> table of contents that gets added at the end (whose size you don't
> actually know either). So I use:
>
> maxzipbytesupperlimit=int((1L<<31)-(8*(1<<20)))
>
> That is 2Gb-8Mb maximum TOC limit of a zip file.
>
> I look at zipbytes add the uncompressed size of the next file, if it
> exceeds maxzipbytesupperlimit, I close the file and move to the next
> zip archive.  If it is smaller, I add the file to the archive.
>
> Hope this helps.
>
> -Larry





More information about the Python-list mailing list