[問題] zipfile開壓縮檔失敗

看板Python作者 (姜姜)時間13年前 (2012/04/05 11:30), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串1/2 (看更多)
我現在一個資料夾下有很多個apk(Android application)檔 當我要讀取每一個apk(一種zipfile)時跳出了錯誤,但不是每個apk 都有錯誤,只有某些才會,請問一下是為什麼? 錯誤訊息如下: Traceback (most recent call last): File "qGram_basis.py", line 39, in <module> sig = get_signature(options.input_folder + filename) File "qGram_basis.py", line 19, in get_signature zipFile = zipfile.ZipFile(apkPath,"r") File "/usr/lib/python2.7/zipfile.py", line 710, in __init__ self._GetContents() File "/usr/lib/python2.7/zipfile.py", line 744, in _GetContents self._RealGetContents() File "/usr/lib/python2.7/zipfile.py", line 803, in _RealGetContents x._decodeExtra() File "/usr/lib/python2.7/zipfile.py", line 369, in _decodeExtra tp, ln = unpack('<HH', extra[:4]) struct.error: unpack requires a string argument of length 4 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.13.230

04/06 14:14, , 1F
變數"extra"怪怪的? extra[:4]出來的長度不到4?
04/06 14:14, 1F

04/06 15:30, , 2F
可能 extra 本來就不到 4? 樓上 apua 耶!
04/06 15:30, 2F

04/06 22:13, , 3F
可是他要unpack出'HH'=兩個unsigned short就需要4個char XD
04/06 22:13, 3F

04/08 13:16, , 4F
感謝大家的回覆!不過我有找到一個跟我一樣的問題
04/08 13:16, 4F

04/08 13:16, , 5F

04/08 13:17, , 6F
不過我本身沒有學過Python所以不知道要怎麼fix,請問有人
04/08 13:17, 6F

04/08 13:18, , 7F
可以交一下嗎?感激不盡
04/08 13:18, 7F

04/08 20:15, , 8F
原來這是zipfile在處理部分格式錯誤的apk檔時會發生的bug~
04/08 20:15, 8F

04/08 20:17, , 9F
不過原po上面這網址不就有人放fix patch在檔案那邊了嗎
04/08 20:17, 9F

04/08 22:02, , 10F
恩恩 但是我不知道要怎麼用那個修正bug@@
04/08 22:02, 10F

04/08 22:37, , 11F
只動一行就直接改吧 zipfile.py裡把pitch中-的那行換成+的
04/08 22:37, 11F
文章代碼(AID): #1FVO9nKx (Python)
討論串 (同標題文章)
文章代碼(AID): #1FVO9nKx (Python)