use*_*702 9 zipfile python-2.7
我有一个1.4GB的zip文件,我试图连续产生每个成员.zipfile模块不断抛出BadZipfile异常,说明这一点
"zipfile.BadZipfile:不支持跨多个磁盘的zipfiles".
这是我的代码:
import zipfile
def iterate_members(zip_file_like_object):
zflo = zip_file_like_object
assert zipfile.is_zipfile(zflo) # Here is where the error happens.
# If I comment out the assert, the same error gets thrown on this next line:
with zipfile.ZipFile(zflo) as zip:
members = zip.namelist()
for member in members:
yield member
fn = "filename.zip"
iterate_members(open(fn, 'rb'))
Run Code Online (Sandbox Code Playgroud)
我正在使用Python 2.7.3.我在Windows 8和ubuntu上尝试了相同的结果.任何帮助非常感谢.
小智 12
虽然我使用python 3.4,但我在类似的文件上得到了同样的错误
能够通过编辑zipfile.py源代码中的第205行来修复它:
if diskno != 0 or disks != 1:
raise BadZipFile("zipfiles that span multiple disks are not supported")
Run Code Online (Sandbox Code Playgroud)
至:
if diskno != 0 or disks > 1:
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
2719 次 |
| 最近记录: |