Một tệp nén có thể được phân loại thành các nhóm hợp lý dưới đây
a. Hệ điều hành bạn đang làm việc (* ix, Win), v.v.
b. Các loại thuật toán nén khác nhau (ví dụ: .zip, .Z, .bz2, .rar, .gzip). Atleast từ một danh sách tiêu chuẩn của các tệp nén được sử dụng chủ yếu.
c. Sau đó, chúng tôi có cơ chế bóng tar - nơi tôi cho rằng không có nén. Nhưng nó hoạt động giống như một nối.Python - cơ chế để xác định loại tệp nén và giải nén
Bây giờ, nếu chúng tôi bắt đầu giải quyết tập hợp các tệp nén ở trên,
a. Tùy chọn (a) sẽ được chăm sóc bởi python vì nó là ngôn ngữ độc lập nền tảng.
b. Tùy chọn (b) và (c) dường như có vấn đề.
Tôi cần gì
Làm cách nào để xác định loại tệp (loại nén) và sau đó nén UN?
Giống như:
fileType = getFileType(fileName)
switch(fileType):
case .rar: unrar....
case .zip: unzip....
etc
Vậy câu hỏi cơ bản là làm thế nào để chúng tôi xác định các thuật toán nén dựa trên tập tin (giả sử phần mở rộng không được cung cấp hoặc không chính xác)? Có cách nào cụ thể để làm điều đó trong python?
Điều này xác định rõ ràng loại tệp. Tuy nhiên, bạn nên quay trở lại đối tượng được tạo bằng cách mở tệp và cho phép truy cập. Nếu không, bạn sẽ kết thúc thử nghiệm loại tệp một lần nữa để xem bạn có cần xử lý hay không. Điều này có thể tránh được bằng cách tạo một trừu tượng chung có thể xử lý tất cả các loại tệp được hỗ trợ. Mẫu này gọi là "nhà máy". – Ber
Bạn cũng có thể sử dụng trang này để tìm kiếm chữ ký bạn muốn: http://www.filesignatures.net/index.php –
Định dạng tệp zip cho phép dữ liệu tùy ý được nối vào đầu tệp, vì vậy hãy kiểm tra số ma thuật cho các tệp zip không chính xác trong mọi trường hợp. –