Làm cách nào để chuyển đổi tệp zip thành python?
Các tệp zip rất tốt để nén dữ liệu và được sử dụng trong nhiều trường hợp khác nhau. Nếu bạn đang xây dựng tập lệnh Python và cần tạo hoặc giải nén các tệp ZIP Python, thì bạn thật may mắn Show
Trong hướng dẫn này, bạn sẽ học cách nén và giải nén (giải nén) các tệp zip, tất cả đều bằng Python Bắt đầu nào điều kiện tiên quyếtNếu bạn muốn làm theo hướng dẫn này, hãy chắc chắn rằng bạn có những thứ sau
Có liên quan. Cách tải tệp xuống bằng Python Wget Tạo tệp Zip bằng PythonHãy bắt đầu và trước tiên hãy tập trung vào việc nén tệp bằng Python. Hướng dẫn này sẽ bắt đầu bằng phương pháp đơn giản nhất có thể và sẽ dựa trên các kỹ thuật khác nhau Để nén một tập tin duy nhất 1. Mở trình soạn thảo văn bản yêu thích của bạn 2. Nếu bạn muốn làm theo chính xác hướng dẫn, hãy tạo một thư mục tại ~/pythonzipdemo và tải các tệp BMP này vào đó. Sau khi thực hiện, bạn sẽ có bốn tệp bitmap; . bmp, all_blue. bmp, all_green. bmp và all_red. bmp. Bạn cũng sẽ có một bản demo. py Tập lệnh Python chứa tất cả mã trong hướng dẫn này
3. Tạo tập lệnh Python mới có tên demo. py. Hướng dẫn này sẽ lưu tập lệnh demo trong thư mục chính hoặc ~/demo. py 4. Trong tập lệnh Python của bạn, hãy bắt đầu viết mã. Đầu tiên, nhập mô-đun 0. Mô-đun 0 là mô-đun Python tích hợp có chứa tất cả các chức năng bạn cần để nén và giải nén tệp bằng Python
5. Tiếp theo, khởi tạo một đối tượng 0 bằng cách sử dụng phương thức 3, mở tệp zip ở chế độ ghi ( 4), thêm một tệp vào đó, sau đó đóng đối tượng ( 5)
Khi bạn chạy tập lệnh, bây giờ bạn sẽ thấy một tệp có tên là single_file. nén trong thư mục. chúc mừng. Bạn đã nén tệp đầu tiên của mình. Nhưng đợi đã. Lưu ý rằng nó không nhỏ hơn. Theo mặc định, tệp zip không được nén. Để nén các file bên trong, bạn phải thực hiện thêm một bước nữa
6. Cuối cùng, thêm tham số 20 khi khởi tạo đối tượng 0. Mô-đun 0 sử dụng các thuộc tính nén khác nhau như ZIP_STORED, ZIP_DEFLATED, ZIP_BZIP2 và ZIP_LZMA chỉ ra cách Python nén các tệp bên trong. Theo mặc định, thuộc tính đó được đặt thành 23, nghĩa là không nénĐể nén các tệp bên trong kho lưu trữ, bạn phải chỉ định thuộc tính 24, như hình bên dưới 2Khi bạn chạy tập lệnh này, bây giờ bạn sẽ thấy rằng single_file. zip nhỏ hơn nhiều so với tệp bitmap thực tế Áp dụng bộ lọc khi nén tệpRất nhiều về việc nén các tệp đã được đề cập, nhưng chỉ bằng cách tham khảo các tệp theo cách thủ công. Khi bạn phải xử lý một số lượng lớn tệp, việc chỉ định từng tệp theo cách thủ công là không lý tưởng Bạn có thể lọc các tệp bạn muốn hoạt động dựa trên các bộ lọc. Ví dụ: bộ lọc có thể dựa trên kích thước tệp hoặc tên tệp Không có cách tích hợp nào để lọc tệp được thêm vào tệp zip. Bạn sẽ cần xây dựng giải pháp của riêng mình. Một cách để xây dựng giải pháp của riêng bạn là tạo một hàm Python. Hàm Python là một bộ mã bạn có thể thực thi như một. Xây dựng một chức năng là một cách tuyệt vời để “đóng gói” code thành một đơn vị duy nhất Có liên quan. Bắt đầu. Hàm Python cho người mới Chức năng để xây dựng cho nhiệm vụ này sẽ bao gồm khoảng bốn giai đoạn riêng biệt
Bạn có thể xem chức năng này bên dưới. Chức năng này phức tạp hơn những gì bạn có thể quen dùng nhưng nó cho thấy Python linh hoạt như thế nào, cho phép bạn tạo bất cứ thứ gì bạn cần
2Liệt kê nội dung của tệp ZipKhi bạn đã tạo tệp zip, bạn cũng có thể sử dụng Python để đọc các tệp bên trong. Để làm điều đó, hãy sử dụng phương pháp 29. Phương thức 29 là một cách thuận tiện để truy vấn tất cả các tệp trong tệp zip được trả về dưới dạng một mảng tên tệpNhư được hiển thị bên dưới, xây dựng từ ví dụ trước, gọi phương thức 29 trên đối tượng 0 7Bạn sẽ thấy rằng 29 trả về một mảng của từng tệp trong tệp zip. Tại thời điểm này, bạn sẽ chỉ thấy một tệp (all_black. bmp) trong tệp nén 29 trả về một mảng của từng tệp trong tệp zipNếu bạn muốn đầu ra tên tệp dễ đọc hơn với con người, hãy sử dụng vòng lặp Python để đọc từng tên tệp và đặt một tab ở giữa mỗi tên, như được hiển thị bên dưới 0Thêm tệp vào tệp Zip hiện cóVì vậy, bạn đã có một tệp zip và muốn thêm một số tệp vào đó. Không vấn đề gì. Bạn chỉ cần thay đổi chế độ mà bạn mở tệp zip trong Để thêm tệp vào tệp zip hiện có, hãy mở tệp zip ở chế độ chắp thêm ( 25), sau đó gọi phương thức 26 chuyển tệp để thêm vào tệp zip, như minh họa bên dưới 3Trích xuất nội dung của tệp Zip bằng Mô-đun ## Instantiate a new zipfile object creating the single_zip.zip archive. zf = zipfile.ZipFile('single_file.zip', mode='w') ## Add a file to the archive zf.write('all_black.bmp') ## Close the archive releasing it from memory zf.close()0Hãy chuyển sang giải nén tệp từ các tệp zip hiện có. Sử dụng phương pháp 28 và 29, bạn có thể biến điều đó thành hiện thựcVí dụ dưới đây đang mở zip để đọc ( 70) sau đó giải nén một tệp ( 71) từ zip vào thư mục nhà của bạn. Nó cũng minh họa cách sử dụng phương pháp 29 để giải nén tất cả các tệp trong zip vào thư mục chính của bạn 0Trích xuất nội dung của tệp Zip Python bằng mô-đun import zipfile # imports the zipfile module so you can make use of it73Để thay thế cho việc sử dụng mô-đun 0, bạn cũng có thể sử dụng một mô-đun Python tích hợp khác có tên là 75. 73 là một mô-đun không tập trung cụ thể vào các tệp zip mà quản lý tệp chung hơn. Tình cờ là có một số phương pháp tệp zip tiện dụng để sử dụngĐể trích xuất nội dung của các tệp zip bằng mô-đun 73, hãy cung cấp tệp zip và đường dẫn để giải nén tất cả các tệp vào. Không giống như phương pháp 28 trên mô-đun 0, phương pháp 00 của 73 không cho phép bạn chọn tệp từ kho lưu trữ để giải nén 0Áp dụng bộ lọc khi giải nén tệpNhư đã trình bày trong phần lọc zip, giờ hãy áp dụng phương pháp tương tự (tạo hàm) để giải nén các tệp khớp với một bộ lọc cụ thể. Bạn có thể xem ví dụ chức năng bên dưới. Hàm này đọc một tệp zip, đọc tất cả các tệp bên trong tệp zip, lặp lại từng tệp và nếu tệp đó khớp với bộ lọc đã xác định, nó sẽ chuyển tệp đó sang phương thức 28 2Phần kết luậnBây giờ bạn đã hiểu rõ về cách làm việc với các tệp zip trong Python. Sử dụng cả mô-đun 0 và 73, cùng với việc xây dựng một số hàm Python, giờ đây bạn sẽ biết cách quản lý bất kỳ tác vụ tệp zip nào được ném vào bạnBạn sẽ tích hợp kiến thức mới này vào dự án Python tiếp theo của mình như thế nào? Ghét quảng cáo? Khám phá sách hướng dẫn ATAThông tin khác từ ATA Learning & Partners
|