Tôi mới đến Python. Yêu cầu của tôi là zip (với nén) tất cả các tệp từ thư mục nguồn đến thư mục đích. Tôi đã sử dụng mã sau từ StackOverflow. Show
Nó đang tạo một tệp zip nhưng nó chứa toàn bộ cấu trúc thư mục được kế thừa. Ngoại trừ ổ đĩa (d:/) phần còn lại của cấu trúc được thêm vào zip. Có vẻ như sau: "D: \ Python \ dir_dir \ dir_dir2 \ abc_test.zip \ python \ dir_dir \ dir_dir \ abc.txt" Trong khi tôi muốn: "D: \ Python \ dir_dir \ dir_dir2 \ abc_test.zip \ abc.txt" Ngoài ra nó không được nén.
Tootone 7.0115 Huy hiệu vàng33 Huy hiệu bạc59 Huy hiệu Đồng5 gold badges33 silver badges59 bronze badges Hỏi ngày 22 tháng 8 năm 2014 lúc 14:05Aug 22, 2014 at 14:05
3 Để bật nén, chỉ định phương thức nén trong hàm tạo:
Tôi nghĩ rằng bạn đang yêu cầu xóa các đường dẫn tương đối của các tệp bên trong tệp zip. Nếu bạn thực sự muốn điều đó, bạn có thể viết:
Tuy nhiên, đây có lẽ là một ý tưởng tồi, vì việc xóa tất cả thông tin đường dẫn sẽ dẫn đến xung đột đặt tên nếu bạn tăng hai tệp có cùng tên. Đã trả lời ngày 22 tháng 8 năm 2014 lúc 14:25Aug 22, 2014 at 14:25
snowcrash09snowcrash09snowcrash09 4.63226 Huy hiệu bạc44 Huy hiệu đồng26 silver badges44 bronze badges 5 Kiểm tra tài liệu chính thức và nó giải quyết rõ ràng các vấn đề của bạn.
nén phải là một trong những hằng số được xác định, ví dụ: zip_deflated Lưu ý rằng bạn cũng có thể chỉ định loại conMpression trên hàm tạo và nó sẽ áp dụng cho tất cả các tệp được thêm vào kho lưu trữ zip. Tài liệu cũng bao gồm ghi chú này: Tên lưu trữ phải liên quan đến gốc lưu trữ, nghĩa là chúng không nên bắt đầu với một bộ phân cách đường dẫn. Ngoài ra, nếu bạn chỉ đơn giản nhập Python Zipfile vào bất kỳ công cụ tìm kiếm nào, bạn sẽ thấy tài liệu chính thức là một trong những liên kết đầu tiên.python zipfile into any search engine, you would have seen the official documentation as one of the first links. Đã trả lời ngày 22 tháng 8 năm 2014 lúc 14:31Aug 22, 2014 at 14:31
Gary Walkergary WalkerGary Walker 8.4552 Huy hiệu vàng18 Huy hiệu bạc40 Huy hiệu đồng2 gold badges18 silver badges40 bronze badges Mã nguồn: lib/zipfile.py Lib/zipfile.py Định dạng tệp ZIP là một tiêu chuẩn lưu trữ và nén phổ biến. Mô -đun này cung cấp các công cụ để tạo, đọc, ghi, nối và liệt kê một tệp zip. Bất kỳ việc sử dụng nâng cao của mô -đun này sẽ yêu cầu sự hiểu biết về định dạng, như được định nghĩa trong ứng dụng PKZIP Lưu ý. Mô-đun này hiện không xử lý các tệp zip nhiều đĩa. Nó có thể xử lý các tệp zip sử dụng các tiện ích mở rộng zip64 (đó là các tệp zip có kích thước cao hơn 4 GIB). 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 một tệp được mã hóa. Giải mã cực kỳ chậm vì nó được thực hiện trong Python bản địa chứ không phải C. Mô -đun xác định các mục sau: Exceptionzipfile.badzipfile¶zipfile.BadZipFile¶Lỗi được nêu ra cho các tệp zip xấu. Mới trong phiên bản 3.2. Exceptionzipfile.badzipfile¶ zipfile.BadZipfile¶Bí danh của 3, để tương thích với các phiên bản Python cũ hơn.Không dùng nữa kể từ phiên bản 3.2. Exceptionzipfile.largezipfile¶zipfile.LargeZipFile¶Lỗi được nêu ra khi tệp zip yêu cầu chức năng zip64 nhưng điều đó chưa được bật. classzipfile.ZipFile zipfile.ZipFileLớp để đọc và viết các tập tin zip. Xem phần đối tượng Zipfile để biết chi tiết về hàm tạo.ZipFile Objects for constructor details. classzipfile.Pathzipfile.PathMột trình bao bọc tương thích pathlib cho các tệp zip. Xem phần đối tượng đường dẫn để biết chi tiết.Path Objects for details. Mới trong phiên bản 3.8. classzipfile.PyZipFilezipfile.PyZipFileLớp để tạo tài liệu lưu trữ zip có chứa các thư viện Python. classzipfile.zipinfo (fileName = 'noname', date_time = (1980,1,0,0,0,0)) ¶ zipfile.ZipInfo(filename='NoName', date_time=(1980, 1, 1, 0, 0, 0))¶Lớp được sử dụng để đại diện cho thông tin về một thành viên của một kho lưu trữ. Các trường hợp của lớp này được trả về bởi các phương thức 4 và 5 của các đối tượng 6. Hầu hết người dùng của mô -đun 7 sẽ không cần phải tạo các mô -đun này, mà chỉ sử dụng những người được tạo bởi mô -đun này. Tên tệp phải là tên đầy đủ của thành viên lưu trữ và Date_Time phải là một bộ chứa sáu trường mô tả thời gian sửa đổi cuối cùng của tệp; Các trường được mô tả trong phần đối tượng Zipinfo.ZipInfo Objects.
zipfile.is_zipfile (tên tệp) ¶is_zipfile(filename)¶Trả về 8 Nếu FileName là tệp zip hợp lệ dựa trên số phép thuật của nó, nếu không, sẽ trả về 9. Tên tệp có thể là một đối tượng giống như tệp hoặc tệp.Đã thay đổi trong phiên bản 3.1: Hỗ trợ cho các đối tượng giống như tệp và tệp.Support for file and file-like objects. zipfile.zip_stored¶ZIP_STORED¶Hằng số số cho một thành viên lưu trữ không nén. zipfile.zip_deflated¶ZIP_DEFLATED¶Hằng số số cho phương pháp nén zip thông thường. Điều này đòi hỏi mô -đun 0.
zipfile.zip_bzip2¶ZIP_BZIP2¶Hằng số số cho phương pháp nén BZIP2. Điều này yêu cầu mô -đun 1.
Mới trong phiên bản 3.3. zipfile.zip_lzma¶ZIP_LZMA¶Hằng số số cho phương pháp nén LZMA. Điều này yêu cầu mô -đun 2.Mới trong phiên bản 3.3. zipfile.zip_lzma¶ Hằng số số cho phương pháp nén LZMA. Điều này yêu cầu mô -đun 2.Ghi chú Thông số kỹ thuật định dạng tệp ZIP đã bao gồm hỗ trợ nén BZIP2 kể từ năm 2001 và để nén LZMA từ năm 2006. Tuy nhiên, một số công cụ (bao gồm các bản phát hành Python cũ hơn) không hỗ trợ các phương thức nén này và có thể từ chối xử lý tệp ZIP hoàn toàn hoặc hoặc Không trích xuất các tệp riêng lẻ.Xem thêm Ghi chú ứng dụng PKZIPTài liệu về định dạng tệp zip của Phil Katz, người tạo định dạng và thuật toán được sử dụng. Trang chủ thông tin-ZipThông tin về các chương trình lưu trữ và thư viện phát triển dự án thông tin-ZIP.zipfile.ZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None, *, strict_timestamps=True, metadata_encoding=None)¶Đối tượng Zipfilepath-like object. classzipfile.zipfile (file, mode = 'r', nén = zip_stored, allowzip64 = true Nén là phương pháp nén zip để sử dụng khi viết kho lưu trữ và phải là 4, 5, 6 hoặc 7; Các giá trị không được công nhận sẽ khiến 8 được nâng lên. Nếu 5, 6 hoặc 7 được chỉ định nhưng mô -đun tương ứng ( 0, 1 hoặc 2) không có sẵn, with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 được nâng lên. Mặc định là 4.Nếu ZipFile cho phép là 8 (mặc định) sẽ tạo các tệp zip sử dụng các tiện ích mở rộng zip64 khi zipfile lớn hơn 4 GIB. Nếu đó là with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')8 7 sẽ tăng một ngoại lệ khi tệp zip sẽ yêu cầu tiện ích mở rộng zip64.Tham số nén kiểm soát mức nén để sử dụng khi ghi tệp vào kho lưu trữ. Khi sử dụng 4 hoặc 7, nó không có tác dụng. Khi sử dụng số nguyên 5 with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())3 đến with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())4 được chấp nhận (xem 0 để biết thêm thông tin). Khi sử dụng số nguyên 6 with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())7 đến with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())4 được chấp nhận (xem 1 để biết thêm thông tin).Đối số StricT_Timestamp, khi được đặt thành 9, cho phép zip các tệp cũ hơn 1980-01-01 với chi phí đặt dấu thời gian thành 1980-01-01. Hành vi tương tự xảy ra với các tệp mới hơn 2107-12-31, dấu thời gian cũng được đặt ở giới hạn.Khi chế độ là 3, metadata_encoding có thể được đặt thành tên của một codec, sẽ được sử dụng để giải mã siêu dữ liệu như tên của các thành viên và nhận xét zip.Nếu tệp được tạo bằng chế độ 4, 6 hoặc 5 và sau đó >>> Path(...).joinpath('child').joinpath('grandchild') >>> Path(...).joinpath('child', 'grandchild') >>> Path(...) / 'child' / 'grandchild'5 mà không cần thêm bất kỳ tệp nào vào kho lưu trữ, các cấu trúc zip thích hợp cho kho lưu trữ trống sẽ được ghi vào tệp. ZipFile cũng là một người quản lý bối cảnh và do đó hỗ trợ câu lệnh >>> Path(...).joinpath('child').joinpath('grandchild') >>> Path(...).joinpath('child', 'grandchild') >>> Path(...) / 'child' / 'grandchild'6. Trong ví dụ, Myzip bị đóng sau khi bộ câu lệnh >>> Path(...).joinpath('child').joinpath('grandchild') >>> Path(...).joinpath('child', 'grandchild') >>> Path(...) / 'child' / 'grandchild'6 đã hoàn thành, ngay cả khi một ngoại lệ xảy ra: with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt') Ghi chú Metadata_encoding là một cài đặt toàn thể cho zipfile. Hiện tại không thể thiết lập điều này trên cơ sở mỗi thành viên. Thuộc tính này là một cách giải quyết cho các triển khai kế thừa tạo ra tài liệu lưu trữ với tên trong trang mã hóa hoặc mã hiện tại (chủ yếu là trên Windows). Theo tiêu chuẩn .zip, việc mã hóa siêu dữ liệu có thể được chỉ định là trang mã IBM (mặc định) hoặc UTF-8 bằng cờ trong tiêu đề lưu trữ. Cờ đó được ưu tiên hơn metadata_encoding, đây là phần mở rộng cụ thể của Python. Mới trong phiên bản 3.2: Đã thêm khả năng sử dụng 6 as a context manager.Đã thay đổi trong phiên bản 3.3: Đã thêm hỗ trợ cho nén >>> Path(...).joinpath('child').joinpath('grandchild') >>> Path(...).joinpath('child', 'grandchild') >>> Path(...) / 'child' / 'grandchild'9 and 2 compression.Đã thay đổi trong phiên bản 3.4: Tiện ích mở rộng ZIP64 được bật theo mặc định.ZIP64 extensions are enabled by default. Đã thay đổi trong phiên bản 3.5: Đã thêm hỗ trợ để viết vào các luồng không thể nhìn thấy. Đã thêm hỗ trợ cho chế độ 6 mode.Đã thay đổi trong phiên bản 3.6: Trước đây, một with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised for unrecognized compression values. Đã thay đổi trong phiên bản 3.6.2: Tham số tệp chấp nhận một đối tượng giống như đường dẫn.The file parameter accepts a path-like object. Đã thay đổi trong phiên bản 3.7: Thêm tham số nén.Add the compresslevel parameter. Mới trong Phiên bản 3.8: Đối số chỉ từ khóa của Strict_TimestampsThe strict_timestamps keyword-only argument Đã thay đổi trong phiên bản 3.11: Đã thêm hỗ trợ để chỉ định mã hóa tên thành viên để đọc siêu dữ liệu trong thư mục và tiêu đề tệp Zipfile.Added support for specifying member name encoding for reading metadata in the zipfile’s directory and file headers. Zipfile.close ()close()¶Đóng tệp lưu trữ. Bạn phải gọi >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)3 trước khi thoát khỏi chương trình hoặc hồ sơ cần thiết của bạn sẽ không được viết. Zipfile.getInfo (tên) ¶getinfo(name)¶ Trả về một đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 với thông tin về tên thành viên lưu trữ. Gọi 4 cho một tên hiện không có trong kho lưu trữ sẽ tăng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)6. Zipfile.infast () ¶infolist()¶ Trả về một danh sách chứa một đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 cho mỗi thành viên của kho lưu trữ. Các đối tượng theo thứ tự giống như các mục của chúng trong tệp zip thực tế trên đĩa nếu một kho lưu trữ hiện có được mở. Zipfile.namelist ()namelist()¶ Trả lại một danh sách các thành viên lưu trữ theo tên. Zipfile.open (name, mode = 'r', pwd = none, *, force_zip64 = false)open(name, mode='r', pwd=None, *, force_zip64=False)¶Truy cập một thành viên của kho lưu trữ dưới dạng đối tượng giống như tệp nhị phân. Tên có thể là tên của một tệp trong kho lưu trữ hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Tham số chế độ, nếu được bao gồm, phải là 3 (mặc định) hoặc 4. NKT là mật khẩu được sử dụng để giải mã các tệp zip được mã hóa.string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile1 cũng là người quản lý bối cảnh và do đó hỗ trợ tuyên bố >>> Path(...).joinpath('child').joinpath('grandchild') >>> Path(...).joinpath('child', 'grandchild') >>> Path(...) / 'child' / 'grandchild'6: with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read()) Với chế độ 3 đối tượng giống như tệp (string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile4) chỉ đọc và cung cấp các phương pháp sau: string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile5, string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile6, string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile7, string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile8, string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile9, $ python -m zipfile -c monty.zip spam.txt eggs.txt
0, $ python -m zipfile -c monty.zip spam.txt eggs.txt
1. Các đối tượng này có thể hoạt động độc lập với zipfile.Với $ python -m zipfile -c monty.zip spam.txt eggs.txt
2, một tay cầm tệp có thể ghi được trả về, hỗ trợ phương thức $ python -m zipfile -c monty.zip spam.txt eggs.txt
3. Mặc dù xử lý tệp có thể ghi được mở, việc cố gắng đọc hoặc ghi các tệp khác trong tệp zip sẽ tăng $ python -m zipfile -c monty.zip spam.txt eggs.txt
4.Khi viết một tệp, nếu kích thước tệp không được biết trước nhưng có thể vượt quá 2 Gib, hãy vượt qua $ python -m zipfile -c monty.zip spam.txt eggs.txt
5 để đảm bảo định dạng tiêu đề có khả năng hỗ trợ các tệp lớn. Nếu kích thước tệp được biết trước, hãy xây dựng một đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 với bộ $ python -m zipfile -c monty.zip spam.txt eggs.txt
7 và sử dụng nó làm tham số tên.Ghi chú Các phương thức string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile1, string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile5 và 00 có thể lấy tên tệp hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Bạn sẽ đánh giá cao điều này khi cố gắng đọc một tệp zip có chứa các thành viên có tên trùng lặp. Đã thay đổi trong phiên bản 3.6: 02 can now be used to write files into the archive with the $ python -m zipfile -c monty.zip spam.txt eggs.txt
2 option.Đã thay đổi trong phiên bản 3.6: Gọi string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile1 on a closed ZipFile will raise a $ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Previously, a with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised. Trích xuất một thành viên từ kho lưu trữ đến thư mục làm việc hiện tại; Thành viên phải là tên đầy đủ của nó hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Thông tin tệp của nó được trích xuất chính xác nhất có thể. Đường dẫn chỉ định một thư mục khác nhau để trích xuất. Thành viên có thể là một tên tệp hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. NKT là mật khẩu được sử dụng cho các tệp được mã hóa. Trả về đường dẫn được chuẩn hóa được tạo (một thư mục hoặc tệp mới). Ghi chú Các phương thức string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile1, string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile5 và 00 có thể lấy tên tệp hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Bạn sẽ đánh giá cao điều này khi cố gắng đọc một tệp zip có chứa các thành viên có tên trùng lặp. Đã thay đổi trong phiên bản 3.6: 00 on a closed ZipFile will raise a $ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Previously, a
with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised. Đã thay đổi trong phiên bản 3.6: Gọi Trích xuất một thành viên từ kho lưu trữ đến thư mục làm việc hiện tại; Thành viên phải là tên đầy đủ của nó hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Thông tin tệp của nó được trích xuất chính xác nhất có thể. Đường dẫn chỉ định một thư mục khác nhau để trích xuất. Thành viên có thể là một tên tệp hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. NKT là mật khẩu được sử dụng cho các tệp được mã hóa. Trả về đường dẫn được chuẩn hóa được tạo (một thư mục hoặc tệp mới). Nếu một tên tệp thành viên là một đường dẫn tuyệt đối, thì ổ đĩa Drive/UNC SharePoint và Dẫn (trở lại) sẽ bị tước, ví dụ: 09 trở thành 10 trên UNIX và 11 trở thành 12 trên Windows. Và tất cả các thành phần 13 trong tên tệp thành viên sẽ bị xóa, ví dụ: 14 trở thành 15. Trên các ký tự bất hợp pháp của Windows ( 16, 17, 18, 19, 20, 21 và 22) được thay thế bằng dấu gạch dưới ( 23).Đã thay đổi trong phiên bản 3.6: Gọi >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Thông tin tệp của nó được trích xuất chính xác nhất có thể. Đường dẫn chỉ định một thư mục khác nhau để trích xuất. Thành viên có thể là một tên tệp hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. NKT là mật khẩu được sử dụng cho các tệp được mã hóa.printdir()¶ Trả về đường dẫn được chuẩn hóa được tạo (một thư mục hoặc tệp mới). Nếu một tên tệp thành viên là một đường dẫn tuyệt đối, thì ổ đĩa Drive/UNC SharePoint và Dẫn (trở lại) sẽ bị tước, ví dụ: 09 trở thành 10 trên UNIX và 11 trở thành 12 trên Windows. Và tất cả các thành phần 13 trong tên tệp thành viên sẽ bị xóa, ví dụ: 14 trở thành 15. Trên các ký tự bất hợp pháp của Windows ( 16, 17, 18, 19, 20, 21 và 22) được thay thế bằng dấu gạch dưới ( 23).setpassword(pwd)¶Đã thay đổi trong phiên bản 3.6: Gọi 00 trên Zipfile đóng sẽ tăng $ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Trước đây, một with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 đã được nâng lên. Thay đổi trong phiên bản 3.6.2: Tham số đường dẫn chấp nhận một đối tượng giống như đường dẫn.read(name, pwd=None)¶ Trích xuất tất cả các thành viên từ kho lưu trữ đến thư mục làm việc hiện tại. Đường dẫn chỉ định một thư mục khác nhau để trích xuất. Các thành viên là tùy chọn và phải là một tập hợp con của danh sách được trả về bởi 27. NKT là mật khẩu được sử dụng cho các tệp được mã hóa.
Cảnh báoCalling string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile5 on a closed ZipFile will raise a $ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Previously, a with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised. Không bao giờ trích xuất tài liệu lưu trữ từ các nguồn không tin cậy mà không kiểm tra trước. Có thể các tệp được tạo bên ngoài đường dẫn, ví dụ: Các thành viên có tên tệp tuyệt đối bắt đầu bằng 28 hoặc tên tệp với hai dấu chấm 13. Mô -đun này cố gắng ngăn chặn điều đó. Xem lưu ý 00.testzip()¶Zipfile.printdir () ¶ In một bảng nội dung cho kho lưu trữ đến 44 on a closed ZipFile will raise a $ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Previously, a with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised. Zipfile.setPassword (pwd) ¶write(filename, arcname=None, compress_type=None, compresslevel=None)¶ Đặt PWD làm mật khẩu mặc định để trích xuất các tệp được mã hóa. Ghi chú Zipfile.read (tên, pwd = none) ¶ Ghi chú Trả về các byte của tên tệp trong kho lưu trữ. Tên là tên của tệp trong kho lưu trữ hoặc đối tượng >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Lưu trữ phải được mở để đọc hoặc nối. PWD là mật khẩu được sử dụng cho các tệp được mã hóa và, nếu được chỉ định, nó sẽ ghi đè mật khẩu mặc định được đặt với 33. Gọi string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile5 trên ZipFile sử dụng phương thức nén khác với 4, 5, 6 hoặc 7 sẽ tăng 8. Một lỗi cũng sẽ được nêu ra nếu mô -đun nén tương ứng không có sẵn.Ghi chú Nếu 50 (hoặc 51, nếu 50 không được đưa ra) chứa một byte null, tên của tệp trong kho lưu trữ sẽ bị cắt ở byte null.Ghi chú Một dấu gạch chéo hàng đầu trong tên tệp có thể dẫn đến việc lưu trữ không thể mở trong một số chương trình zip trên các hệ thống Windows. Đã thay đổi trong phiên bản 3.6: Gọi $ python -m zipfile -c monty.zip spam.txt eggs.txt
3 on a ZipFile created with mode 3 or a closed ZipFile will raise a
$ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Previously, a with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised. Zipfile.writeStrwritestr(zinfo_or_arcname, data, compress_type=None, compresslevel=None)¶ Viết một tập tin vào kho lưu trữ. Nội dung là dữ liệu, có thể là một thể hiện 57 hoặc 58; Nếu đó là 57, nó được mã hóa dưới dạng UTF-8 trước. zinfo_or_arcname là tên tệp mà nó sẽ được đưa ra trong kho lưu trữ hoặc một thể hiện >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4. Nếu nó là một ví dụ, ít nhất là tên tệp, ngày và thời gian phải được đưa ra. Nếu nó có tên, ngày và giờ được đặt thành ngày và giờ hiện tại. Lưu trữ phải được mở với Chế độ 4, 6 hoặc 5.Nếu được đưa ra, nén_type ghi đè giá trị được đưa ra cho tham số nén cho hàm tạo cho mục nhập mới hoặc trong zinfo_or_arcname (nếu đó là một ví dụ >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4). Tương tự, nén sẽ ghi đè hàm tạo nếu được đưa ra. Ghi chú Khi chuyển một thể hiện >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 dưới dạng tham số zinfo_or_arcname, phương thức nén được sử dụng sẽ được chỉ định trong thành viên nén_type của thể hiện >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 đã cho. Theo mặc định, hàm tạo >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 đặt thành viên này thành 4.Đã thay đổi trong phiên bản 3.2: Đối số nén_type.The compress_type argument. Đã thay đổi trong phiên bản 3.6: Gọi 69 on a ZipFile created with mode 3 or a closed ZipFile will raise a
$ python -m zipfile -c monty.zip spam.txt eggs.txt
4. Previously, a with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 was raised. Zipfile.mkdir (zinfo_or_directory, mode = 511) ¶mkdir(zinfo_or_directory, mode=511)¶ Tạo một thư mục bên trong kho lưu trữ. Nếu zinfo_or_directory là một chuỗi, một thư mục được tạo bên trong kho lưu trữ với chế độ được chỉ định trong đối số chế độ. Tuy nhiên, nếu zinfo_or_directory là một ví dụ >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 thì đối số chế độ bị bỏ qua. Lưu trữ phải được mở với Chế độ 4, 6 hoặc 5.Mới trong phiên bản 3.11. Các thuộc tính dữ liệu sau đây cũng có sẵn: Zipfile.filename¶filename¶Tên của tệp zip. Zipfile.debug¶debug¶Mức độ đầu ra gỡ lỗi để sử dụng. Điều này có thể được đặt từ with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())3 (mặc định, không có đầu ra) thành 78 (đầu ra nhiều nhất). Thông tin gỡ lỗi được ghi vào 31.Nhận xét liên quan đến tệp zip dưới dạng đối tượng 58. Nếu gán một nhận xét cho một thể hiện 6 được tạo với chế độ 4, 6 hoặc 5, nó sẽ không dài hơn 65535 byte. Nhận xét lâu hơn điều này sẽ bị cắt ngắn.Đối tượng đường dẫn Sở đối tượngclasszipfile.path (root, at = '') ¶zipfile.Path(root, at='')¶Xây dựng một đối tượng đường dẫn từ một zipfile 85 (có thể là một ví dụ 6 hoặc 87 phù hợp để chuyển đến hàm tạo 6). 89 Chỉ định vị trí của đường dẫn này trong zipfile, ví dụ: ‘DIR/FILE.TXT,‘ Dir/xông, hoặc ‘. Mặc định cho chuỗi trống, chỉ ra gốc.Các đối tượng đường dẫn hiển thị các tính năng sau của các đối tượng 90:Các đối tượng đường dẫn có thể đi qua bằng toán tử 91 hoặc 92. Path.Name¶name¶Thành phần đường dẫn cuối cùng. Path.open (mode = 'r', *, pwd, **) ¶open(mode='r', *, pwd, **)¶Gọi 02 trên đường dẫn hiện tại. Cho phép mở để đọc hoặc viết, văn bản hoặc nhị phân thông qua các chế độ được hỗ trợ: ‘R,‘ W, ‘RB,‘ WB. Đối số vị trí và từ khóa được chuyển qua 94 khi được mở dưới dạng văn bản và bị bỏ qua khác. 95 là tham số 95 thành 02.Đã thay đổi trong phiên bản 3.9: Đã thêm hỗ trợ cho các chế độ văn bản và nhị phân để mở. Chế độ mặc định bây giờ là văn bản.Added support for text and binary modes for open. Default mode is now text. Path.iterdir () ¶iterdir()¶Liệt kê những đứa trẻ của thư mục hiện tại. Path.is_dir ()is_dir()¶Trả về 8 Nếu bối cảnh hiện tại tham khảo một thư mục.
Path.is_file () ¶is_file()¶Trả về 8 Nếu bối cảnh hiện tại tham khảo một tệp.
Path.exists () ¶exists()¶Trả về 8 Nếu bối cảnh hiện tại tham chiếu một tệp hoặc thư mục trong tệp zip.
Path.Suffix¶suffix¶Phần mở rộng tập tin của thành phần cuối cùng. Mới trong phiên bản 3.11: Đã thêm thuộc tính 01 property.
Path.stem¶stem¶Thành phần đường dẫn cuối cùng, không có hậu tố của nó. Mới trong phiên bản 3.11: Đã thêm thuộc tính 02 property.
Path.Suffixes¶suffixes¶Một danh sách các phần mở rộng tệp đường dẫn. Path.read_text (*, **) ¶read_text(*, **)¶Đọc tệp hiện tại dưới dạng văn bản Unicode. Các đối số vị trí và từ khóa được chuyển qua 94 (ngoại trừ 04, được ngụ ý bởi bối cảnh). Path.read_bytes () ¶read_bytes()¶Đọc tệp hiện tại dưới dạng byte. Path.joinpath (*khác) ¶joinpath(*other)¶Trả về một đối tượng đường dẫn mới với mỗi đối số khác đã tham gia. Sau đây là tương đương: >>> Path(...).joinpath('child').joinpath('grandchild') >>> Path(...).joinpath('child', 'grandchild') >>> Path(...) / 'child' / 'grandchild' Đã thay đổi trong phiên bản 3.10: Trước 3.10, 92
was undocumented and accepted exactly one parameter.Dự án ZIPP cung cấp backports của chức năng đối tượng đường dẫn mới nhất cho Pythons cũ hơn. Sử dụng 06 thay cho 07 để truy cập sớm vào các thay đổi.Đối tượng pyzipfileChất xây dựng 08 có cùng tham số với hàm tạo 6 và một tham số bổ sung, tối ưu hóa. classzipfile.pyzipfile (file, mode = 'r', nén = zip_stored, allowzip64 = true, tối ưu hóa = -1) ¶zipfile.PyZipFile(file, mode='r', compression=ZIP_STORED,
allowZip64=True, optimize=- 1)¶Mới trong phiên bản 3.2: Tham số tối ưu hóa.The optimize parameter. Đã thay đổi trong phiên bản 3.4: Tiện ích mở rộng ZIP64 được bật theo mặc định.ZIP64 extensions are enabled by default. Các trường hợp có một phương thức ngoài các đối tượng 6: writepy (pathName, basename = '', filterFunc = none) ¶(pathname, basename='',
filterfunc=None)¶Tìm kiếm các tệp 11 và thêm tệp tương ứng vào kho lưu trữ.Nếu tham số tối ưu hóa thành 08 không được đưa ra hoặc 13, tệp tương ứng là tệp 14, biên dịch nếu cần thiết.Nếu tham số tối ưu hóa thành 08 là with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())3, with ZipFile('spam.zip') as myzip: with myzip.open('eggs.txt') as myfile: print(myfile.read())7 hoặc 18, chỉ các tệp có mức tối ưu hóa đó (xem 19) được thêm vào kho lưu trữ, biên dịch nếu cần thiết.Nếu PathName là một tệp, tên tệp phải kết thúc bằng 20 và chỉ là tệp (tương ứng ____214) được thêm vào ở cấp cao nhất (không có thông tin đường dẫn). Nếu PathName là một tệp không kết thúc bằng 20, thì with ZipFile('spam.zip', 'w') as myzip: myzip.write('eggs.txt')5 sẽ được nêu ra. Nếu đó là một thư mục và thư mục không phải là thư mục gói, thì tất cả các tệp 14 được thêm vào ở cấp cao nhất. Nếu thư mục là một thư mục gói, thì tất cả 14 được thêm vào tên gói dưới dạng đường dẫn tệp và nếu bất kỳ thư mục con nào là thư mục gói, tất cả đều được thêm vào theo thứ tự được sắp xếp theo thứ tự.Basename chỉ dành cho sử dụng nội bộ. FilterFunc, nếu được đưa ra, phải là một hàm lấy một đối số chuỗi duy nhất. Nó sẽ được thông qua mỗi đường dẫn (bao gồm mỗi đường dẫn tệp đầy đủ riêng lẻ) trước khi nó được thêm vào kho lưu trữ. Nếu FilterFunc trả về một giá trị sai, đường dẫn sẽ không được thêm vào và nếu đó là một thư mục, nội dung của nó sẽ bị bỏ qua. Ví dụ: nếu các tệp thử nghiệm của chúng tôi đều có trong các thư mục 26 hoặc bắt đầu với chuỗi 27, chúng tôi có thể sử dụng FilterFunc để loại trừ chúng:>>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests) Phương thức 28 tạo ra tài liệu lưu trữ với tên tệp như thế này:string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile Mới trong phiên bản 3.4: Tham số FilterFunc.The filterfunc parameter. Đã thay đổi trong phiên bản 3.6.2: Tham số PathName chấp nhận một đối tượng giống như đường dẫn.The pathname parameter accepts a path-like object. Đã thay đổi trong phiên bản 3.7: Các mục nhập thư mục sắp xếp đệ quy.Recursion sorts directory entries. Đối tượng ZipinfoCác trường hợp của lớp >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 được trả về bởi các phương thức 4 và 5 của các đối tượng 6. Mỗi đối tượng lưu trữ thông tin về một thành viên duy nhất của kho lưu trữ zip.Có một classmethod để tạo một thể hiện >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 cho tệp hệ thống tập tin: classMethodzipInfo.from_file (fileName, arcName = none, *, strict_timestamp = true) ¶ ZipInfo.from_file(filename, arcname=None, *, strict_timestamps=True)¶ Xây dựng một thể hiện >>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)4 cho một tệp trên hệ thống tập tin, để chuẩn bị thêm nó vào tệp zip. Tên tệp phải là đường dẫn đến một tệp hoặc thư mục trên hệ thống tệp. Nếu ArcName được chỉ định, nó được sử dụng làm tên trong kho lưu trữ. Nếu ArcName không được chỉ định, tên sẽ giống như tên tệp, nhưng với bất kỳ ký tự ổ đĩa nào và các dấu phân cách đường dẫn hàng đầu bị xóa. Đối số StricT_Timestamp, khi được đặt thành 9, cho phép zip các tệp cũ hơn 1980-01-01 với chi phí đặt dấu thời gian thành 1980-01-01. Hành vi tương tự xảy ra với các tệp mới hơn 2107-12-31, dấu thời gian cũng được đặt ở giới hạn.Mới trong phiên bản 3.6. Đã thay đổi trong phiên bản 3.6.2: Tham số tên tệp chấp nhận một đối tượng giống như đường dẫn.The filename parameter accepts a path-like object. Mới trong Phiên bản 3.8: Đối số chỉ từ khóa của Strict_TimestampsThe strict_timestamps keyword-only argument Các phiên bản có các phương thức và thuộc tính sau: Zipinfo.is_dir ()is_dir()¶Trả về 8 Nếu thành viên lưu trữ này là một thư mục.Điều này sử dụng tên mục nhập tên: Các thư mục phải luôn kết thúc bằng 91.Mới trong phiên bản 3.6. Đã thay đổi trong phiên bản 3.6.2: Tham số tên tệp chấp nhận một đối tượng giống như đường dẫn.filename¶Mới trong Phiên bản 3.8: Đối số chỉ từ khóa của Strict_Timestamps Các phiên bản có các phương thức và thuộc tính sau:date_time¶Zipinfo.is_dir ()
Năm (> = 1980) Tháng (dựa trên một) Ngày trong tháng (dựa trên một)compress_type¶Giờ (không dựa trên) Biên bản (không dựa trên) Giây (dựa trên không) Zipinfo.create_system¶create_system¶Hệ thống tạo ra kho lưu trữ zip. Zipinfo.create_version¶create_version¶Phiên bản PKZIP tạo ra kho lưu trữ zip. Phiên bản PKZIP cần thiết để trích xuất Lưu trữ. Zipinfo.reserved¶reserved¶Phải bằng không. Zipinfo.flag_bits¶flag_bits¶BIT cờ zip. Zipinfo.volume¶volume¶Số lượng tiêu đề tập tin. Zipinfo.Inalal_attr¶internal_attr¶Thuộc tính nội bộ. Zipinfo.external_attr¶external_attr¶Thuộc tính tệp bên ngoài. Byte bù vào tiêu đề tập tin. Zipinfo.crc¶CRC¶CRC-32 của tệp không nén. Zipinfo.compress_size¶compress_size¶Kích thước của dữ liệu nén. Zipinfo.file_size¶file_size¶Kích thước của tập tin không nén. Giao diện dòng lệnhMô-đun 7 cung cấp giao diện dòng lệnh đơn giản để tương tác với kho lưu trữ zip.Nếu bạn muốn tạo một kho lưu trữ zip mới, hãy chỉ định tên của nó sau tùy chọn 47 và sau đó liệt kê (các) tên tệp nên được bao gồm:$ python -m zipfile -c monty.zip spam.txt eggs.txt
Vượt qua một thư mục cũng được chấp nhận: 0Nếu bạn muốn trích xuất một kho lưu trữ zip vào thư mục được chỉ định, hãy sử dụng tùy chọn 48: 1Đối với danh sách các tệp trong kho lưu trữ zip, hãy sử dụng tùy chọn 49: 2
Tùy chọn dòng lệnh mà-L¶ - -List¶Liệt kê các tập tin trong một zipfile. -c ... ¶ -tạo ra ... ¶Tạo zipfile từ các tập tin nguồn. -e¶Trích xuất zipfile vào thư mục đích. -T¶ -Test¶Kiểm tra xem zipfile có hợp lệ hay không. .Chỉ định mã hóa tên thành viên cho 49, 48 và 52.Mới trong phiên bản 3.11. Cạm bẫy giải nénViệc trích xuất trong mô -đun Zipfile có thể thất bại do một số cạm bẫy được liệt kê dưới đây. Từ tập tin chính nóGiải quyết có thể thất bại do mật khẩu / định dạng kiểm tra CRC / ZIP không chính xác hoặc phương pháp nén / giải mã không được hỗ trợ. Giới hạn hệ thống tệpVượt quá giới hạn trên các hệ thống tệp khác nhau có thể gây ra giải nén không thành công. Chẳng hạn như các ký tự được phép trong các mục nhập thư mục, độ dài của tên tệp, độ dài của tên đường dẫn, kích thước của một tệp và số lượng tệp, v.v. Giới hạn tài nguyênViệc thiếu bộ nhớ hoặc khối lượng đĩa sẽ dẫn đến giải nén không thành công. Ví dụ, bom giải nén (còn gọi là bom zip) áp dụng cho thư viện zipfile có thể gây cạn kiệt khối lượng đĩa. Sự gián đoạnSự gián đoạn trong quá trình giải nén, chẳng hạn như cấp kiểm soát-C hoặc tiêu diệt quá trình giải nén có thể dẫn đến giải nén không hoàn toàn của kho lưu trữ. Làm cách nào để tạo một tệp zip trong Python?Tạo một kho lưu trữ zip từ nhiều tệp trong Python Tạo một đối tượng zipfile bằng cách chuyển tên tệp và chế độ mới dưới dạng 'w' (chế độ ghi). Nó sẽ tạo một tệp zip mới và mở nó trong đối tượng zipfile. Chức năng ghi () trên đối tượng ZipFile để thêm các tệp trong đó. Gọi Đóng () trên đối tượng ZipFile để đóng tệp zip.Create a ZipFile object by passing the new file name and mode as 'w' (write mode). It will create a new zip file and open it within ZipFile object. Call write() function on ZipFile object to add the files in it. call close() on ZipFile object to Close the zip file.
Tệp nén trong Python là gì?Chúng tôi mở và đọc tệp này vào bộ nhớ và sau đó sử dụng chức năng nén để tạo dữ liệu nén.Dữ liệu này sau đó được viết vào tệp đầu ra.Để chứng minh rằng chúng tôi có thể khôi phục dữ liệu, sau đó chúng tôi lại mở tệp nén và sử dụng chức năng giải nén trên đó.
Làm thế nào bạn sẽ zip và giải nén các tệp trong Python?Nhập mô -đun zipfile Tạo đối tượng tệp ZIP bằng lớp ZipFile.Gọi phương thức trích xuất () trên đối tượng tệp zip và truyền tên của tệp để được trích xuất và đường dẫn nơi tệp cần được trích xuất và trích xuất tệp cụ thể có trong zip.Create a zip file object using ZipFile class. Call the extract() method on the zip file object and pass the name of the file to be extracted and the path where the file needed to be extracted and Extracting the specific file present in the zip.
Làm cách nào để giảm kích thước của một zipfile?Để bắt đầu, bạn cần tìm một thư mục trên máy tính mà bạn muốn nén ... Tìm một thư mục bạn muốn nén .. Nhấp chuột phải vào thư mục .. Tìm "Gửi đến" trong menu thả xuống .. Chọn "Thư mục nén (zipped).". |