zipfile.py, fp.seek(-22,2) error

Waitman Gobble avail4one at gmail.com
Sun Nov 6 15:28:22 EST 2005


Hello,

I am new to Python. I am having trouble with zipfile.py.

On a Linux machine with python 2.4.2 I have trouble opening a zipfile.
Python is complaining about the bit where it does a seek(-22,2). Looks
to me like zipfile.py is trying to come back 22 bytes from the end of
file.

# python
Python 2.4.2 (#1, Oct 27 2005, 15:13:45)
[GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import zipfile
>>> zf=zipfile.ZipFile("testdoc.odt")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local/lib/python2.4/zipfile.py", line 210, in __init__
    self._GetContents()
  File "/usr/local/lib/python2.4/zipfile.py", line 230, in _GetContents
    self._RealGetContents()
  File "/usr/local/lib/python2.4/zipfile.py", line 240, in
_RealGetContents
    endrec = _EndRecData(fp)
  File "/usr/local/lib/python2.4/zipfile.py", line 83, in _EndRecData
    fpin.seek(-22, 2)               # Assume no archive comment.
IOError: [Errno 22] Invalid argument

>>> ff=open("testdoc.odt","r")
>>> ff.seek(-22,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
IOError: [Errno 22] Invalid argument
>>> ff.seek(0,2)
>>> ff.seek(22,1)
>>> ff.seek(22,2)
>>> ff.seek(-22,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
IOError: [Errno 22] Invalid argument


on a windows machine using python 2.4.2 zipfile.py works fine.

Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)]
on win32

IDLE 1.1.2
>>> import zipfile
>>> zf=zipfile.ZipFile("testdoc.odt")
>>> ff=open("testdoc.odt","r")
>>> ff.seek(-22,2)
>>> ff.seek(0,0)
>>> ff.seek(0,2)
>>> ff.seek(-22,2)
>>>

here is a windows machine using python 2.3.2 (cygwin)

$ python
Python 2.3.2 (#1, Oct  9 2003, 12:03:29)
[GCC 3.3.1 (cygming special)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ff=open("testdoc.odt","r")
>>> ff.seek(-22,2)
>>> ff.seek(0,2)
>>> ff.seek(22,2)
>>> ff.seek(0,0)
>>> ff.seek(-22,2)
>>> import zipfile
>>> zf=zipfile.ZipFile("testdoc.odt")
>>>

seek doesn't mind going -22 from the end on a windows machine but hates
doing it on a linux machine....

any idears????

Thanks and Best,

Waitman Gobble




More information about the Python-list mailing list