Python Tệp ZIP có ví dụ
⚡ Tóm tắt thông minh
Python Tạo các tệp lưu trữ ZIP bằng các mô-đun shutil và zipfile tích hợp sẵn. Tại đây, bạn sẽ học cách nén toàn bộ thư mục bằng make_archive(), nén các tệp cụ thể bằng ZipFile, và ví dụ:tracLiệt kê và đọc nội dung lưu trữ.

Python cho phép bạn tạo file zip/tar nhanh chóng.
Lệnh sau sẽ nén toàn bộ thư mục
shutil.make_archive(output_filename, 'zip', dir_name)
Lệnh sau cho phép bạn kiểm soát các tập tin bạn muốn lưu trữ
ZipFile.write(filename)
Cách nén toàn bộ thư mục trong tệp ZIP Python
Dưới đây là các bước để tạo Tệp Zip trong Python
Bước 1) Để tạo một tập tin lưu trữ từ Python, hãy đảm bảo rằng bạn có câu lệnh nhập chính xác và theo thứ tự. Đây là câu lệnh nhập cho kho lưu trữ from shutil import make_archive
Code Giải thích
- Nhập lớp make_archive từ mô-đun shutil
- Sử dụng chức năng chia nhỏ để tách thư mục và tên file từ đường dẫn đến vị trí của file văn bản (guru99)
- Sau đó chúng ta gọi mô-đun “shutil.make_archive(“guru99 archive, “zip”, root_dir)” để tạo tệp lưu trữ, tệp này sẽ ở định dạng zip
- Sau đó, chúng tôi chuyển vào thư mục gốc của những thứ chúng tôi muốn nén lại. Vì vậy mọi thứ trong thư mục sẽ được nén
- Khi bạn chạy mã, bạn có thể thấy tệp zip lưu trữ được tạo ở phía bên phải của bảng điều khiển.
Bước 2) Sau khi tệp lưu trữ của bạn được tạo, bạn có thể nhấp chuột phải vào tệp và chọn hệ điều hành, nó sẽ hiển thị các tệp lưu trữ của bạn trong đó như hình dưới đây
Bây giờ tệp archive.zip của bạn sẽ xuất hiện trên hệ điều hành của bạn (Windows Explorer)
Bước 3) Khi bạn nhấp đúp vào tệp, bạn sẽ thấy danh sách tất cả các tệp trong đó.
Cách nén các tập tin cụ thể bằng ZipFile
Bước 4) In Python chúng ta có thể kiểm soát tốt hơn đối với archive vì chúng ta có thể xác định file cụ thể nào sẽ được đưa vào archive. Trong trường hợp của chúng ta, chúng ta sẽ đưa hai file vào archive “guru99.txt” và “guru99.txt.bak”.
Code Giải thích
- Nhập lớp Zipfile từ tệp zip Python mô-đun. Mô-đun này cung cấp toàn quyền kiểm soát việc tạo tệp zip
- Chúng tôi tạo một Zipfile mới có tên ( “testguru99.zip, “w”)
- Tạo lớp Zipfile mới cần phải pass vì là file nên cần ghi thông tin vào file dưới dạng newzip
- Chúng tôi đã sử dụng biến “newzip” để chỉ tệp zip mà chúng tôi đã tạo
- Sử dụng hàm write trên biến “newzip”, chúng tôi thêm các tệp “guru99.txt” và “guru99.txt.bak” vào kho lưu trữ
Khi thực thi mã, bạn có thể thấy tệp được tạo ở phía bên phải của bảng điều khiển có tên “guru99.zip”
Lưu ý: Ở đây chúng tôi không đưa ra bất kỳ lệnh nào để “đóng” tệp như “newzip.close” vì chúng tôi sử dụng khóa phạm vi “Với”, vì vậy khi chương trình nằm ngoài phạm vi này, tệp sẽ được dọn sạch và tự động đóng.
Bước 5) Khi bạn -> nhấp chuột phải vào tệp (testguru99.zip) và -> chọn hệ điều hành của bạn (Windows Explorer), nó sẽ hiển thị các tập tin lưu trữ trong thư mục như hình dưới đây.
Khi bạn nhấp đúp vào tệp “testguru99.zip”, một cửa sổ khác sẽ mở ra và hiển thị các tệp tin có trong đó.
Hoàn thành Python Code Để tạo tệp ZIP
Đây là mã hoàn chỉnh
Python 2 Ví dụ
import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive
def main():
# Check if file exists
if path.exists("guru99.txt"):
# get the path to the file in the current directory
src = path.realpath("guru99.txt");
# rename the original file
os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
root_dir,tail = path.split(src)
shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
with ZipFile("testguru99.zip","w") as newzip:
newzip.write("guru99.txt")
newzip.write("guru99.txt.bak")
if __name__== "__main__":
main()
Python 3 Ví dụ
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
Cách giải thíchtract (Giải nén) một tập tin ZIP trong Python
Để giải nén một tệp lưu trữ, hãy mở nó ở chế độ đọc bằng ZipFile và gọi ví dụ như sau:tractall() thành extracmọi tập tin, hoặc ví dụtract() để rút ra một thành viên duy nhất.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: myzip.extractall("extracted_files")
Người tình cũtracPhương thức tall() ghi tất cả các tệp đã được lưu trữ vào thư mục mà bạn truyền vào làm đối số.
Cách liệt kê các tệp trong tệp ZIP Archive
Bạn có thể kiểm tra kho lưu trữ mà không cần extracNó. Phương thức namelist() trả về tên của mọi tệp được lưu trữ bên trong tệp ZIP.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: print(myzip.namelist())
Lệnh này sẽ in ra danh sách tên các tập tin có trong kho lưu trữ.
Cách đọc một tập tin bên trong tệp ZIP Archive
Bạn có thể đọc trực tiếp tệp thành viên từ tệp lưu trữ mà không cần giải nén.ping sao chép nó ra đĩa bằng phương thức open() của lớp ZipFile.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: with myzip.open("guru99.txt") as f: print(f.read())
Điều này rất hữu ích khi bạn chỉ cần nội dung của một tập tin duy nhất từ một kho lưu trữ lớn.







