Tôi có một tệp nén 1,4 GB và đang cố gắng để mang lại cho mỗi thành viên liên tiếp. Mô-đun zipfile tiếp tục ném ngoại lệ BadZipfile, nêu rõ rằngMô-đun zipfile Python sai lầm nghĩ rằng tôi có một zipfile kéo dài nhiều đĩa, ném BadZipfile lỗi
"zipfile.BadZipfile: zipfiles span span disk not supported".
Đây là mã của tôi:
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'))
Tôi đang sử dụng Python 2.7.3. Tôi đã thử trên cả Windows 8 và ubuntu với cùng một kết quả. Bất kỳ trợ giúp rất nhiều đánh giá cao.
Bạn có thể đăng tệp zip (hoặc liên kết tới nó) không? [Mã dẫn đến lỗi này] (http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l176) khá đơn giản; nó kiểm tra xem tiêu đề của tệp có khai báo nhiều hơn một đĩa hoặc số đĩa của tệp là bất kỳ thứ gì khác không. – phihag
Cảm ơn phihag. Rất tiếc, tôi không thể đăng tệp vì nó chứa dữ liệu khách hàng bí mật. – user1541702
Bạn có thể tạo một tệp zip có dữ liệu thử nghiệm lớn mà vẫn hiển thị sự cố không? – phihag