Python cho phép bạn nhanh chóng tạo các kho lưu trữ zip / tar.
Lệnh sau sẽ nén toàn bộ thư mục
shutil.make_archive(output_filename, 'zip', dir_name)
Lệnh sau cung cấp cho bạn quyền kiểm soát các tệp bạn muốn lưu trữ
ZipFile.write(filename)
Dưới đây là các bước để tạo tệp Zip bằng Python
Bước 1) Để tạo tệp 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ữ là
from shutil import make_archive
Giải thích mã
- Nhập lớp make_archive từ cửa sổ mô-đun
- Sử dụng chức năng tách để tách thư mục và tên tệp khỏi đường dẫn đến vị trí của tệp văn bản (guru99)
- Sau đó, chúng tôi gọi mô-đun "shutil.make_archive (" guru99 archive, "zip", root_dir) "để tạo tệp lưu trữ, 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. 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)
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 đó.
Bước 4) Trong Python, chúng ta có thể kiểm soát nhiều hơn đối với kho lưu trữ vì chúng ta có thể xác định tệp cụ thể nào sẽ bao gồm trong tệp lưu trữ. Trong trường hợp của chúng tôi, chúng tôi sẽ bao gồm hai tệp trong kho lưu trữ "guru99.txt" và "guru99.txt.bak".
Giải thích mã
- Nhập lớp Zipfile từ mô-đun Python của tệp zip. 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 tệp Zipfile mới với tên ("testguru99.zip," w ")
- Tạo một lớp Zipfile mới, yêu cầu cấp quyền vì đó là một tệp, vì vậy bạn cần ghi thông tin vào tệp dưới dạng newzip
- Chúng tôi đã sử dụng biến "newzip" để tham chiếu đến tệp zip mà chúng tôi đã tạo
- Sử dụng hàm ghi 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 bạn 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 với 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 dẹp và tự động đóng lại.
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 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", nó sẽ mở ra một cửa sổ khác và điều này sẽ hiển thị các tệp có trong đó.
Đây là mã hoàn chỉnh
Ví dụ Python 2
nhập hệ điều hànhcửa khẩu nhập khẩutừ zipfile nhập ZipFiletừ đường dẫn nhập hệ điều hànhfrom shutil import make_archivedef main ():# Kiểm tra xem tệp có tồn tại khôngif path.exists ("guru99.txt"):# lấy đường dẫn đến tệp trong thư mục hiện tạisrc = path.realpath ("guru99.txt");# đổi tên tệp gốcos.rename ("Career.guru99.txt", "guru99.txt")# bây giờ đưa mọi thứ vào kho lưu trữ ZIProot_dir, tail = path.split (src)shutil.make_archive ("kho lưu trữ guru99", "zip", root_dir)# kiểm soát chi tiết hơn đối với các tệp ZIPvới ZipFile ("testguru99.zip", "w") dưới dạng newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")if __name __ == "__main__":chủ yếu()
Ví dụ Python 3
nhập hệ điều hànhcửa khẩu nhập khẩutừ zipfile nhập ZipFiletừ đường dẫn nhập hệ điều hànhfrom shutil import make_archive# Kiểm tra xem tệp có tồn tại khôngif path.exists ("guru99.txt"):# lấy đường dẫn đến tệp trong thư mục hiện tạisrc = path.realpath ("guru99.txt");# đổi tên tệp gốcos.rename ("Career.guru99.txt", "guru99.txt")# bây giờ đưa mọi thứ vào kho lưu trữ ZIProot_dir, tail = path.split (src)shutil.make_archive ("kho lưu trữ guru99", "zip", root_dir)# kiểm soát chi tiết hơn đối với các tệp ZIPvới ZipFile ("testguru99.zip", "w") dưới dạng newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Tóm lược
- Để nén toàn bộ thư mục, hãy sử dụng lệnh "shutil.make_archive (" name "," zip ", root_dir)
- Để chọn các tệp để nén, hãy sử dụng lệnh "ZipFile.write (tên tệp)"