Re: Zipfile module errors

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • John Machin

    #1

    Re: Zipfile module errors

    On Jun 4, 8:06 pm, jwesonga <crazylun...@gm ail.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._GetConten ts()
    File "/usr/lib/python2.4/zipfile.py", line 230, in _GetContents
    self._RealGetCo ntents()
    File "/usr/lib/python2.4/zipfile.py", line 240, in _RealGetContent s
    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
  • John Machin

    #2
    Re: Zipfile module errors

    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._GetConten ts()
    File "/usr/lib/python2.4/zipfile.py", line 230, in _GetContents
    self._RealGetCo ntents()
    File "/usr/lib/python2.4/zipfile.py", line 242, in _RealGetContent s
    raise BadZipfile, "File is not a zip file"
    zipfile.BadZipf ile: 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...@lexic on.netwrote:
    >On Jun 4, 8:06 pm, jwesonga <crazylun...@gm ail.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._GetConten ts()
    >> File "/usr/lib/python2.4/zipfile.py", line 230, in _GetContents
    >> self._RealGetCo ntents()
    >> File "/usr/lib/python2.4/zipfile.py", line 240, in _RealGetContent s
    >> 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
    >
    >
    >
    >
    >

    Comment

    Working...