我最近在Python上读zip的压缩包。 报告错误。
python2.6.6(r266336084292,jun 182012,14336018336047 ) )。
[ gcc4.4. 620110731 (red hat4.4.6-3) ] on linux2
Type 'help '、' copyright '、' credits ' or ' license ' for more information。
导入zipfile
zipfile.zipfile('bla.apk ' )。
跟踪后退(mostrecentcalllast ) :
文件',line 1,in
file '/usr/lib 64/python 2.6/zipfile.py ',line 696,in __init__
self._GetContents (
file '/usr/lib 64/python 2.6/zipfile.py ',line 716,in _GetContents
self._RealGetContents ()
file '/usr/lib 64/python 2.6/zipfile.py ',line 772,in _RealGetContents
x._decodeExtra (
file '/usr/lib 64/python 2.6/zipfile.py ',line 351,in _decodeExtra
tp,ln=unpack ('
struct.error : unpackrequiresastringargumentoflength 4
我觉得这是Python的错误。 详情已在http://bugs.python.org/issue 14315中讨论。
解决方法有两个。
第一,如本页面所讨论的,应用修补程序。 3358 bugs.python.org/file 24902/fix _ zipfile _ extra.patch。
特别是,进入名为/usr/lib 64/python 2.6/zipfile.py的文件,在第351行附近将while extra:更改为whilelen(extra(=4: )
方法二是升级Python版本。
这个问题是在Python 2.6.6中发现的。 这个Python是Linux附带的版本,所以可能很低。 升级了2.7.3或更高版本,高版本解决了此问题。 所以升级Python也是一种方法。
---------分割线---------
Python详细介绍:请单击此处
Python下载地址:请单击此处