Trong python 2,6 ZipFile đối tượng có một phương pháp open có thể mở tệp có tên trong zip dưới dạng đối tượng tệp, bạn có thể khởi kiện để đọc dữ liệu trong các khối
import zipfile
import os
def read_in_chunks(zf, name):
chunk_size= 4096
f = zf.open(name)
data_list = []
total_read = 0
while 1:
data = f.read(chunk_size)
total_read += len(data)
print "read",total_read
if not data:
break
data_list.append(data)
return "".join(data_list)
zip_file_path = r"C:\Users\anurag\Projects\untitled-3.zip"
zf = zipfile.ZipFile(zip_file_path, "r")
for name in zf.namelist():
data = read_in_chunks(zf, name)
Edit: Để có được tổng kích thước bạn có thể làm một cái gì đó như thế này
total_size = sum((file.file_size for file in zf.infolist()))
Vì vậy, bây giờ bạn có thể in các tiến bộ tổng và tiến bộ mỗi tập tin, ví dụ giả sử bạn chỉ có 1 tệp lớn trong zip, các phương pháp khác (ví dụ: chỉ tính kích thước tệp và trích xuất) sẽ không cung cấp bất kỳ tiến trình nào.
Nguồn
2010-10-24 03:50:23
Hoàn hảo! Đây chính là điều tôi muốn !! Cảm ơn! –