Hướng dẫn shutil zip python - trò chơi zip potthon
Trong Python, bạn có thể zip và giải nén các tệp, tức là, nén các tệp vào tệp zip và trích xuất tệp zip với mô -đun zipfile. Show
Ngoài ra, bạn có thể dễ dàng zip một thư mục (thư mục) và giải nén một tệp zip với 2 và 3 của mô -đun Shutil.
Cả hai đều được bao gồm trong thư viện tiêu chuẩn, vì vậy không cần cài đặt bổ sung. Bài viết này mô tả các nội dung sau đây.
ZIP Một thư mục (thư mục): shutil.make_archive('archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip') 4Giải nén một tập tin: 5
Nén các tệp riêng lẻ vào tệp zip Thêm các tệp khác vào tệp zip hiện có
Kiểm tra danh sách các tệp trong tệp zip
Trích xuất các tệp riêng lẻ từ tệp zip Đọc tệp trong tệp zip
Bạn có thể zip một thư mục (thư mục), tức là, tạo tệp zip từ một thư mục với 4.Giải nén một tập tin: shutil.make_archive('archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip') 5Khái niệm cơ bản của mô -đun zipfile: 6 đối tượng
Thêm các tệp khác vào tệp zip hiện có
Kiểm tra danh sách các tệp trong tệp zip
Trích xuất các tệp riêng lẻ từ tệp zip Đọc tệp trong tệp zip
Khái niệm cơ bản của mô -đun zipfile: shutil.make_archive('archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip') 6 đối tượngNén các tệp riêng lẻ vào tệp zip
Kiểm tra danh sách các tệp trong tệp zip Trích xuất các tệp riêng lẻ từ tệp zip Đọc tệp trong tệp zip
Bạn có thể zip một thư mục (thư mục), tức là, tạo tệp zip từ một thư mục với 4.Nén các tệp riêng lẻ vào tệp zipThêm các tệp khác vào tệp zip hiện có Kiểm tra danh sách các tệp trong tệp zip Trích xuất các tệp riêng lẻ từ tệp zip Đọc tệp trong tệp zip
Ví dụ, giả sử có một thư mục 7 với cấu trúc sau trong thư mục hiện tại.
Phương thức 6 của đối tượng 6 ghi tệp có tên tham số đầu tiên 6 vào tệp zip, đặt cho nó tên lưu trữ (= name trong zip) tham số thứ hai 7. Nếu 7 bị bỏ qua, 6 được sử dụng làm tên lưu trữ. Bạn có thể chỉ định cấu trúc thư mục cho 7.
Bạn cũng có thể chọn một phương thức nén và cấp độ cho mỗi tệp bằng cách chỉ định 1 và 2 trong phương thức 6.Thêm các tệp khác vào tệp zip hiện cóĐể thêm các tệp khác vào tệp zip hiện có, với 9, hãy đặt tham số đầu tiên 4 thành đường dẫn của tệp zip hiện có và tham số thứ hai 5 thành 8 (nối).Thêm các tập tin hiện cóBạn có thể thêm các tệp hiện có bằng phương thức 6 của đối tượng 6.Sau đây là một ví dụ về việc thêm 00 trong thư mục hiện tại. Đối số 7 bị bỏ qua.
Tạo và thêm một tệp mớiBạn cũng có thể tạo một tệp mới và thêm nó. Sử dụng phương thức 3 của đối tượng 6 với chế độ phụ trợ ( 8).
Chỉ định đường dẫn của tệp mới được tạo trong ZIP làm tham số đầu tiên và đặt tham số thứ hai 5 thành 7.Bạn có thể viết nội dung bằng phương thức 6 của đối tượng tệp đã mở.
Đối số của 6 phải được chỉ định là 09, không phải 10. Để viết một văn bản, sử dụng 11 hoặc chuyển đổi nó bằng phương pháp 12 của 10. 0Một ví dụ về việc đọc một tệp trong zip với 3 của đối tượng 6 được mô tả sau.Kiểm tra danh sách các tệp trong tệp zipĐể kiểm tra nội dung của tệp zip hiện có, hãy tạo đối tượng 6 với tham số đầu tiên 4 dưới dạng đường dẫn của tệp zip hiện có và tham số thứ hai 5 là 6 (đọc). 5 có thể được bỏ qua vì mặc định là 6.Bạn có thể nhận được một danh sách các mục được lưu trữ với phương thức 22 của đối tượng 6.
1Như bạn có thể thấy từ kết quả ở trên, Zips được tạo bằng 4 cũng liệt kê các thư mục riêng lẻ. Điều tương tự cũng đúng với các zips được nén với chức năng tiêu chuẩn của công cụ tìm trên Mac.Bạn có thể loại trừ các thư mục với sự hiểu biết danh sách.
2Để giải nén tệp zip, hãy tạo đối tượng 6 ở chế độ đọc ( 6, mặc định).Nếu bạn chỉ muốn trích xuất các tệp cụ thể, hãy sử dụng phương thức 27.
Tham số đầu tiên 28 là tên của tệp được trích xuất (bao gồm thư mục trong tệp zip) và tham số thứ hai 29 là đường dẫn đến thư mục để trích xuất. 3Nếu bạn muốn trích xuất tất cả các tệp, hãy sử dụng phương thức 30. Chỉ định đường dẫn của thư mục để trích xuất là đối số đầu tiên 29.
4Trong cả hai trường hợp, nếu 29 bị bỏ qua, các tệp được trích xuất vào thư mục hiện tại. Mặc dù tài liệu không chỉ định nó, nhưng dường như nó tạo ra một thư mục mới ngay cả khi 29 không tồn tại (được xác nhận trong Python 3.9.9).Đọc tệp trong tệp zipBạn có thể đọc trực tiếp các tệp trong một tệp zip. Tạo đối tượng 6 ở chế độ đọc (mặc định) và mở tệp bên trong bằng phương thức 3.Đối số đầu tiên của 3 là tên của một tệp trong zip (nó có thể bao gồm thư mục). Đối số thứ hai 5 có thể được bỏ qua vì giá trị mặc định là 6 (đọc).Nội dung có thể được đọc với phương thức 39 của đối tượng tệp đã mở. Một chuỗi byte 09 được trả về, có thể được chuyển đổi thành chuỗi 10 với phương thức 42. 5Ngoài 39, 44 và 45 có thể được sử dụng cũng như đối tượng tệp được mở với chức năng tích hợp 3.
Zip với mật khẩu (mã hóa và giải mã)Mô -đun zipfile có thể giải mã các zips bằng mật khẩu (zip được mã hóa), nhưng nó không thể mã hóa zips.
Ngoài ra, AES không được hỗ trợ.
Cả 2 và 3 đều không hỗ trợ mã hóa và giải mã.PyzipperPyzipper được giới thiệu trong Stack Overflow trên hỗ trợ mã hóa và giải mã AES, và có thể được sử dụng theo cách tương tự như Zipfile.
Để tạo tệp zip bằng mật khẩu, chỉ định 49 với 50 và đặt mật khẩu bằng phương thức 51. Lưu ý rằng bạn cần chỉ định mật khẩu với chuỗi byte 09. 6Sau đây là một ví dụ về việc giải nén tệp zip bằng mật khẩu. 7Tất nhiên, nếu mật khẩu sai, nó không thể được giải mã. 8Mô -đun ZipFile cũng cho phép bạn chỉ định mật khẩu, nhưng như đã đề cập ở trên, nó không hỗ trợ AES. 9Lệnh thực thi với import shutil shutil.make_archive('archive_shutil', format='zip', root_dir='dir_zip') 53Bạn cũng có thể sử dụng 53 nếu zipfile hoặc pyzipper không hoạt động, nhưng lệnh này có thể xử lý nó bằng mọi cách.
Sử dụng lệnh 55 của 7-zip (yêu cầu cài đặt) làm ví dụ. 0Tương đương với các lệnh sau. 56 là mở rộng. Lưu ý rằng 57 và 58 không yêu cầu khoảng trống. 1 |