how to zip a StringIO object?

Dave Angel davea at
Wed Oct 28 20:15:20 CET 2009

Nagy Viktor wrote:
> Hi,
> I try to run the following code:
> def generate_zip(object_list, template):
>     result = StringIO.StringIO()
>     zipped = zipfile.ZipFile(result, "w")
>     for object in object_list:
>         pdf = generate_pdf(object, template)
>         if not pdf:
>             raise IOError("Problem with generating invoice %d" %
>         zipped.writestr("invoice-%d.pdf" %, pdf)
>     zipped.close()
>     return result.getvalue()
> where generate_pdf returns a valid pdf file's string content, more
> precisely it returns a StringIO.getvalue() call containing the pdf
> "string".
> When I add this string to the zip file, I get a problem. Namely, the
> zipped files are chmoded to non-readable when extracted. How can I
> change this?
> thanks,
> V
You don't tell us the version of Python, nor the OS environment, nor 
what utility you're using to extract these files.

When I supply the missing imports, shortcircuit the missing classes and 
functions, and add some mainline code, I can run this with no problem.  
Are you also running on Windows XP, using 2.6.2, using the same missing 
code as I, and extracting with Winzip 11.2?


More information about the Python-list mailing list