By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,818 Members | 1,262 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,818 IT Pros & Developers. It's quick & easy.

Re: Zipfile module errors

P: n/a
On Jun 4, 8:06 pm, jwesonga <crazylun...@gmail.comwrote:
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
Jun 27 '08 #1
Share this Question
Share on Google+
1 Reply


P: n/a
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@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...@lexicon.netwrote:
>On Jun 4, 8:06 pm, jwesonga <crazylun...@gmail.comwrote:
>>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


Jun 27 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.