Zipfile module errors

John Machin sjmachin at lexicon.net
Wed Jun 4 10:59:38 EDT 2008


jwesonga wrote:
> I've added the line to the script, added a zipped file into the
> folder. I've made sure the file exists. The error is now this:

Please get some clues:
(1) Don't reply off-list unless specifically invited.
(2) Don't top-post.
(3) Do read and try to understand *all* of each reply that you get ...
e.g. """
P.S. Printing the contents of filelist immediately after it's been
created might be a good idea. You say "pick the zipped files" but the
only condition I see is a test using os.path.isdir.
"""

(4) Do read and try to understand the output from your own script, e.g.

> 
> [jwesonga at web38 processor_files]$ python2.4 processor3.py
> trying to unzip '/home/jwesonga/received/log.txt' whose size is 752
> bytes

Doesn't that tell you anything? Like you are trying to unzip your own 
logfile??


> Traceback (most recent call last):
>   File "processor3.py", line 125, in ?
>     unzip(infolder)
>   File "processor3.py", line 54, in unzip
>     zfile = zipfile.ZipFile(one,'r')
>   File "/usr/lib/python2.4/zipfile.py", line 210, in __init__
>     self._GetContents()
>   File "/usr/lib/python2.4/zipfile.py", line 230, in _GetContents
>     self._RealGetContents()
>   File "/usr/lib/python2.4/zipfile.py", line 242, in _RealGetContents
>     raise BadZipfile, "File is not a zip file"
> zipfile.BadZipfile: File is not a zip file
> 
> This is strange because I can see the zipped file inside the folder /
> home/jwesonga/received what could be the problem?
> 
> On Jun 4, 2:45 pm, John Machin <sjmac... at lexicon.net> wrote:
>> On Jun 4, 8:06 pm, jwesonga <crazylun... at gmail.com> wrote:
>>
>>> Hi,
>>> I have a python script that supposed to go through a folder, pick the
>>> zipped files, unzip them and process the data inside. I'm not sure
>>> where i'm going wrong with this script because it all seems correct:
>> Nothing is ever as it seems. Let's try to work backwards from the
>> error message ... and we don't need your magnificent script, just the
>> traceback will do for now, so:
>>
>> [ big snip]
>>
>>
>>
>>> The error I keep getting is:
>>> Traceback (most recent call last):
>>>   File "processor3.py", line 124, in ?
>>>     unzip(infolder)
>>>   File "processor3.py", line 53, in unzip
>> The error says that you are trying to seek 22 bytes backwards from the
>> end of a file that you presume is a zip file, and this is deemed to be
>> invalid. Hypotheses: (1) zipfile.py is buggy (2) your file is less
>> than 22 bytes long. Let's park hypothesis 1 for the moment. Insert the
>> following code before the call to zipfile.ZipFile:
>>
>> print "trying to unzip %r whose size is %d bytes" \
>>     % (one, os.stat(one).st_size)
>>
>> and tell us your conclusions.
>>
>>>     zfile = zipfile.ZipFile(one,'r')
>>>   File "/usr/lib/python2.4/zipfile.py", line 210, in __init__
>>>     self._GetContents()
>>>   File "/usr/lib/python2.4/zipfile.py", line 230, in _GetContents
>>>     self._RealGetContents()
>>>   File "/usr/lib/python2.4/zipfile.py", line 240, in _RealGetContents
>>>     endrec = _EndRecData(fp)
>>>   File "/usr/lib/python2.4/zipfile.py", line 83, in _EndRecData
>>>     fpin.seek(-22, 2)               # Assume no archive comment.
>>> IOError: [Errno 22] Invalid argument
>> P.S. Printing the contents of filelist immediately after it's been
>> created might be a good idea. You say "pick the zipped files" but the
>> only condition I see is a test using os.path.isdir.
>>
>> HTH,
>> John
> 
> 
> 
> 
> 




More information about the Python-list mailing list