Có nhiều cách để nén tệp trong thư mục. Mục đích của bài viết này là mô tả một số tùy chọn nhanh để nén một thư mục cụ thể. Nó sẽ mô tả cách thực hiện việc này bằng phương pháp Kéo và Thả và menu ngữ cảnh WinZip. Vui lòng xem các liên kết Bài viết liên quan ở cuối bài viết này để biết thêm thông tin
Để nén một thư mục bằng Kéo và Thả, bạn có thể
- Kéo thư mục bạn muốn nén vào tệp Zip hiện có
- Kéo thư mục bạn muốn nén vào lối tắt trên màn hình WinZip
- Kéo thư mục bạn muốn nén vào cửa sổ WinZip đang mở
Nếu bạn không muốn sử dụng phương pháp Kéo và Thả, bạn có thể sử dụng menu ngữ cảnh WinZip [nhấp chuột phải]. Để thực hiện việc này, nhấp chuột phải vào thư mục bạn muốn Zip và chọn một trong các tùy chọn Thêm vào tệp Zip
Ví dụ: giả sử cấu trúc thư mục của c. \level1\level2\level3 tồn tại và bạn muốn duy trì cấu trúc thư mục level2\level3 cùng với các tệp. Bạn có thể làm như sau
- Mở một cửa sổ thư mục và nhấp chuột phải vào thư mục level2
- Từ menu con WinZip, chọn Thêm vào tệp Zip
- Nhấp vào Thêm
Tệp Zip kết quả sẽ duy trì cấu trúc tệp/thư mục cấp 2 và sẽ bao gồm các thư mục con bên dưới
Trong Python, bạn có thể nén và giải nén tệp, tôi. e. , nén tệp thành tệp ZIP và giải nén tệp ZIP bằng mô-đun zipfile
- zipfile — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
Ngoài ra, bạn có thể dễ dàng nén một thư mục [thư mục] và giải nén tệp ZIP bằng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
2 và shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
3 của mô-đun Shutil- Shutil - Thao tác lưu trữ — Thao tác tệp cấp cao — Python 3. 10. 2 tài liệu
Cả hai đều có trong thư viện chuẩn nên không cần cài đặt thêm
Bài viết này mô tả các nội dung sau
- Zip một thư mục [thư mục].
4shutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
- Giải nén một tập tin.
5shutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
- Khái niệm cơ bản về mô-đun zipfile.
6 đối tượngshutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
- Nén các tệp riêng lẻ thành một 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
- ZIP có mật khẩu [mã hóa và giải mã]
Liên kết được tài trợ
Zip một thư mục [thư mục]. shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
4
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
Bạn có thể nén một thư mục [folder], tôi. e. , tạo tệp ZIP từ thư mục có
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
4- đóng cửa. make_archive[] — Thao tác tệp cấp cao — Python 3. 10. 2 tài liệu
Tham số đầu tiên
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
9 là đường dẫn không có phần mở rộng của tệp ZIP cần tạo, tham số thứ hai shutil.unpack_archive['archive_shutil.zip', 'dir_out']
0 là định dạng lưu trữ [shutil.unpack_archive['archive_shutil.zip', 'dir_out']
1, shutil.unpack_archive['archive_shutil.zip', 'dir_out']
2, shutil.unpack_archive['archive_shutil.zip', 'dir_out']
3, shutil.unpack_archive['archive_shutil.zip', 'dir_out']
4, shutil.unpack_archive['archive_shutil.zip', 'dir_out']
5], và tham số thứ ba shutil.unpack_archive['archive_shutil.zip', 'dir_out']
6 là đường dẫn của thư mục cần nénVí dụ: giả sử có một thư mục
shutil.unpack_archive['archive_shutil.zip', 'dir_out']
7 với cấu trúc sau trong thư mục hiện tạishutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6Nén thư mục này thành tệp ZIP
shutil.unpack_archive['archive_shutil.zip', 'dir_out']
8 trong thư mục hiện tạishutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
8nguồn. zip_archive. py
Trong trường hợp này, bản thân thư mục được chỉ định
shutil.unpack_archive['archive_shutil.zip', 'dir_out']
7 không được bao gồm trong shutil.unpack_archive['archive_shutil.zip', 'dir_out']
8Nếu bạn muốn bao gồm chính thư mục đó, hãy chỉ định đường dẫn của thư mục trên của thư mục đích trong tham số thứ ba
shutil.unpack_archive['archive_shutil.zip', 'dir_out']
6 và đường dẫn tương đối của thư mục đích từ shutil.unpack_archive['archive_shutil.zip', 'dir_out']
6 trong tham số thứ tư shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
33- Shutil - Lưu trữ ví dụ với base_dir — Thao tác tệp cấp cao — Python 3. 10. 2 tài liệu
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
nguồn. zip_archive. py
Xem phần tiếp theo để biết kết quả giải nén
Giải nén một tập tin. shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
5
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
Bạn có thể giải nén một tập tin, tôi. e. , trích xuất tất cả nội dung của tệp ZIP bằng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
5- đóng cửa. unpack_archive[] — Thao tác tệp cấp cao — Python 3. 10. 2 tài liệu
Tham số đầu tiên
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
36 là đường dẫn của tệp ZIP và tham số thứ hai shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
37 là đường dẫn của thư mục đích nơi lưu trữ được trích xuất________số 8
nguồn. zip_archive. py
Nó được trích xuất như sau
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
3Mặc dù tài liệu không chỉ định nó, nhưng nó dường như tạo một thư mục mới ngay cả khi không tồn tại
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
37 [đã xác nhận trong Python 3. 9. 9]Tệp ZIP được tạo bởi
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
4 với shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
33 được trích xuất như saushutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
4nguồn. zip_archive. py
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
5Khái niệm cơ bản về mô-đun zipfile. shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
Mô-đun zipfile cung cấp lớp
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 để tạo, đọc, viết, nối thêm và liệt kê tệp ZIP- zipfile - Đối tượng ZipFile — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
Các đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 được tạo bằng cách chỉ định tham số đầu tiên shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
44 [đường dẫn của tệp ZIP] và tham số thứ hai shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 [đọc shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
46, ghi shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
47, nối thêm shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
48, v.v. ] cho hàm tạo shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
49Đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 cần được đóng bằng phương thức shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
51, nhưng nếu bạn sử dụng câu lệnh shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
52, nó sẽ tự động được đóng khi khối kết thúcCách sử dụng cũng tương tự như đọc ghi file có sẵn hàm
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53 như chỉ định chế độ và sử dụng câu lệnh shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
52- 7. Đầu vào và đầu ra - Đọc và ghi tệp — Python 3. 10. 2 tài liệu
Các ví dụ cụ thể được mô tả trong các phần sau
Nén các tệp riêng lẻ thành một tệp ZIP
Để nén các tệp riêng lẻ thành tệp ZIP, hãy tạo một đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 mới và thêm các tệp bạn muốn nén bằng phương pháp shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
56Với
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
49, chỉ định đường dẫn của tệp ZIP mới được tạo làm tham số đầu tiên shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
44 và đặt tham số thứ hai shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 thành shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
47 [ghi]Ở chế độ ghi, bạn cũng có thể chỉ định phương pháp nén và mức độ với các tham số
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
61 và shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
62Phương pháp nén
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
61 như sau;
64. Không nén [mặc định]shutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
65. Nén ZIP thông thườngshutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
66. nén BZIP2shutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
67. Nén LZMAshutil.make_archive['archive_shutil_base', format='zip', root_dir='.', base_dir='dir_zip']
Đối với
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
68, mức nén shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
62 tương ứng với shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
50 của shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
51. Mặc định là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
52 [shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53]level là mức nén – một số nguyên từ 0 đến 9 hoặc -1. Giá trị 1 [Z_BEST_SPEED] là nhanh nhất và tạo ra ít nén nhất, trong khi giá trị 9 [Z_BEST_COMPRESSION] là chậm nhất và tạo ra nhiều nén nhất. 0 [Z_NO_COMPRESSION] không nén. Giá trị mặc định là -1 [Z_DEFAULT_COMPRESSION]. Z_DEFAULT_COMPRESSION thể hiện sự thỏa hiệp mặc định giữa tốc độ và độ nén [hiện tại tương đương với cấp 6]. zlib. nénobj[] — Nén tương thích với gzip — Python 3. 10. 2 tài liệu
- trăn/zipfile. py lúc 3. 10 · trăn/cpython
Phương thức
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
56 của đối tượng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 ghi tệp có tên tham số đầu tiên là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
36 vào một tệp ZIP, cung cấp cho nó tên lưu trữ [= tên trong ZIP] tham số thứ hai là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
57. Nếu bỏ qua shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
57, shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
36 đượ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 shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
57- zipfile. Tệp Zip. write[] — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6nguồn. zip_archive. py
Bạn cũng có thể chọn phương thức nén và cấp độ cho từng tệp bằng cách chỉ định
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
71 và shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
62 trong phương thức shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
56Thê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
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
49, hãy đặt tham số đầu tiên shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
44 thành đường dẫn của tệp ZIP hiện có và tham số thứ hai shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 thành shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
48 [nối thêm]Thêm các tệp hiện có
Bạn có thể thêm các tệp hiện có bằng phương thức
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
56 của đối tượng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6Sau đây là một ví dụ về việc thêm
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
800 vào thư mục hiện tại. Đối số shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
57 bị bỏ quashutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
5nguồn. zip_archive. py
Tạo và thêm một tệp mới
Bạn cũng có thể tạo một tệp mới và thêm nó. Sử dụng phương thức
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53 của đối tượng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 với chế độ chắp thêm [shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
48]- zipfile. Tệp Zip. open[] — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
Chỉ định đường dẫn của tệp mới tạo trong ZIP làm tham số đầu tiên và đặt tham số thứ hai
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 thành shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
47Bạn có thể viết nội dung bằng phương thức
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
56 của đối tượng tệp đã mởshutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
7nguồn. zip_archive. py
Đối số của
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
56 nên được chỉ định là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
809, không phải là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
810. Để viết một văn bản, hãy sử dụng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
811 hoặc chuyển đổi nó bằng phương pháp shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
812 của shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
810shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
80nguồn. zip_archive. py
Một ví dụ về việc đọc một tệp trong ZIP với
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53 của đối tượng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 được mô tả sauLiên kết được tài trợ
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 một đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 với tham số đầu tiên là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
44 là đường dẫn của tệp ZIP hiện có và tham số thứ hai là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
46 [đã đọc]. Có thể bỏ qua shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 vì mặc định là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
46Bạn có thể lấy danh sách các mục đã lưu trữ bằng phương thức
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
822 của đối tượng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6- zipfile. Tệp Zip. namelist[] — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
81nguồn. zip_archive. py
Như bạn có thể thấy từ kết quả trên, các tệp ZIP được tạo bằng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
4 cũng liệt kê các thư mục riêng lẻ. Điều này cũng đúng với các tệp ZIP được nén bằng chức năng tiêu chuẩn của Finder trên máy MacBạn có thể loại trừ các thư mục có khả năng hiểu danh sách
- Danh sách hiểu trong Python
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
82nguồn. zip_archive. py
Trích xuất các tệp riêng lẻ từ tệp ZIP
Để giải nén tệp ZIP, hãy tạo một đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 ở chế độ đọc [shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
46, mặc định]Nếu bạn chỉ muốn giải nén các tệp cụ thể, hãy sử dụng phương pháp
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
827- zipfile. Tệp Zip. extract[] — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
Tham số đầu tiên
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
828 là tên file cần giải nén [bao gồm cả thư mục trong file zip] và tham số thứ hai shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
829 là đường dẫn đến thư mục cần giải nénshutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
83nguồn. zip_archive. py
Nếu bạn muốn giải nén tất cả các tệp, hãy sử dụng phương pháp
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
830. Chỉ định đường dẫn của thư mục để trích xuất làm đối số đầu tiên shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
829- zipfile. Tệp Zip. extractall[] — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
84nguồn. zip_archive. py
Trong cả hai trường hợp, nếu bỏ qua
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
829, các tệp sẽ đượ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 nó dường như tạo một thư mục mới ngay cả khi không tồn tại shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
829 [đã xác nhận trong Python 3. 9. 9]Đọc tệp trong tệp ZIP
Bạn có thể đọc trực tiếp các tệp trong tệp ZIP
Tạo một đối tượng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
6 ở chế độ đọc [mặc định] và mở tệp bên trong bằng phương thức shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53Đối số đầu tiên của
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53 là tên của tệp trong ZIP [có thể bao gồm thư mục]. Đối số thứ hai shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
45 có thể được bỏ qua vì giá trị mặc định là shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
46 [đã đọc]Có thể đọc nội dung bằng phương pháp
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
839 của đối tượng tệp đã mở. Một chuỗi byte shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
809 được trả về, có thể được chuyển đổi thành chuỗi shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
810 bằng phương thức shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
842shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
85nguồn. zip_archive. py
Ngoài
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
839, có thể sử dụng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
844 và shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
845 cũng như đối tượng tệp được mở bằng chức năng tích hợp sẵn shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
53- 7. Đầu vào và đầu ra - Đọc và ghi tệp — Python 3. 10. 2 tài liệu
ZIP có mật khẩu [mã hóa và giải mã]
Mô-đun zipfile có thể giải mã ZIP bằng mật khẩu [ZIP được mã hóa], nhưng nó không thể mã hóa ZIP
Nó hỗ trợ giải mã các tệp được mã hóa trong kho lưu trữ ZIP, nhưng hiện tại nó không thể tạo tệp được mã hóa. Quá trình giải mã cực kỳ chậm vì nó được triển khai bằng Python gốc chứ không phải C. zipfile — Làm việc với kho lưu trữ ZIP — Python 3. 10. 2 tài liệu
Ngoài ra, AES không được hỗ trợ
Mô-đun zipfile từ thư viện chuẩn Python chỉ hỗ trợ các tệp zip được mã hóa CRC32 [xem tại đây. http. //hg. con trăn. org/cpython/file/71adf21421d9/Lib/zipfile. py#l420 ]. zip - Python giải nén tệp được mã hóa AES-128
Cả
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
2 và shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
3 đều không hỗ trợ mã hóa và giải mãdây kéo
Pyzipper được giới thiệu trong Stack Overflow ở trên hỗ trợ mã hóa và giải mã AES, đồng thời có thể được sử dụng theo cách tương tự như zipfile
- danifus/pyzipper. Phần mở rộng zipfile Python
Để tạo tệp ZIP bằng mật khẩu, hãy chỉ định
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
849 bằng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
850 và đặt mật khẩu bằng phương thức shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
851. Lưu ý rằng bạn cần chỉ định mật khẩu bằng chuỗi byte shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
809shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
86nguồn. zip_archive. py
Sau đây là một ví dụ về giải nén tệp ZIP bằng mật khẩu
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
87nguồn. zip_archive. py
Tất nhiên nếu sai mật khẩu thì không thể giải mã được
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
88nguồn. zip_archive. py
Mô-đ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
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
89nguồn. zip_archive. py
Thực hiện lệnh với shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
853
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
Bạn cũng có thể sử dụng
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
853 nếu zipfile hoặc pyzipper không hoạt động, nhưng lệnh vẫn có thể xử lý nó- quy trình con. run[] — Quản lý quy trình con — Python 3. 10. 2 tài liệu
Sử dụng lệnh
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
855 của 7-zip [yêu cầu cài đặt] làm ví dụshutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
0nguồn. zip_archive. py
Tương đương với các lệnh sau.
shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
856 là bản mở rộng. Lưu ý rằng shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
857 và shutil.make_archive['archive_shutil_base', format='zip',
root_dir='.', base_dir='dir_zip']
858 không yêu cầu khoảng trắng