Tôi có hai tệp zip, cả hai tệp đều mở tốt với Windows Explorer và 7-zip.giải nén kết quả tệp trong "BadZipFile: Tệp không phải là tệp zip"
Tuy nhiên, khi tôi mở chúng bằng mô-đun zipfile của Python [zipfile.ZipFile ("filex.zip")], một trong số chúng được mở nhưng một trong số đó cung cấp lỗi "BadZipfile: File is not a zip file
".
Tôi đã đảm bảo rằng tệp thứ hai là tệp Zip hợp lệ bằng cách mở tệp bằng 7-Zip và xem các thuộc tính của nó (nói 7Zip.ZIP). Khi tôi mở tệp bằng trình chỉnh sửa văn bản, hai ký tự đầu tiên là "PK", cho biết rằng đó thực sự là tệp zip.
Tôi đang sử dụng Python 2.5 và thực sự không có bất kỳ đầu mối nào về việc này. Tôi đã thử nó cả với Windows cũng như Ubuntu và vấn đề tồn tại trên cả hai nền tảng.
Cập nhật: Traceback từ Python 2.5.4 trên Windows:
Traceback (most recent call last):
File "<module1>", line 5, in <module>
zipfile.ZipFile("c:/temp/test.zip")
File "C:\Python25\lib\zipfile.py", line 346, in init
self._GetContents()
File "C:\Python25\lib\zipfile.py", line 366, in _GetContents
self._RealGetContents()
File "C:\Python25\lib\zipfile.py", line 378, in _RealGetContents
raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
Về cơ bản khi hàm _EndRecData
được gọi để lấy dữ liệu từ End Trung Directory" kỷ lục, các kiểm tra chiều dài bình luận không [endrec [ . 7] == len (bình luận)]
các giá trị của người dân địa phương trong _EndRecData
chức năng như sau:
END_BLOCK: 4096,
comment: '\x00',
data: '\xd6\xf6\x03\x00\x88,N8?<e\xf0q\xa8\x1cwK\x87\x0c(\x82a\xee\xc61N\'1qN\x0b\x16K-\x9d\xd57w\x0f\xa31n\xf3dN\x9e\xb1s\xffu\xd1\.....', (truncated)
endrec: ['PK\x05\x06', 0, 0, 4, 4, 268, 199515, 0],
filesize: 199806L,
fpin: <open file 'c:/temp/test.zip', mode 'rb' at 0x045D4F98>,
start: 4073
Có thể là: http://bugs.python.org/issue1757072? –
Cố gắng chạy lệnh unix 'file' trên cả hai tệp của bạn. Có thể nó sẽ cho bạn một số đầu mối. –
Đối với cả hai tệp, dữ liệu lưu trữ Zip, ít nhất là v2.0 để trích xuất – sharjeel