Trong bài đăng này, chúng ta sẽ tìm hiểu cách ZIP tệp bằng Python, cách giải nén tệp từ tệp ZIP hoặc cách in nội dung của tệp ZIP bằng Python. Trước đó, hãy nói về tệp ZIP
Tệp ZIP là gì?Tệp ZIP là tệp lưu trữ hỗ trợ nén dữ liệu không mất dữ liệu. Nó có thể chứa một số tệp và thư mục hoặc các tệp ZIP được nén khác trong đó. Định dạng này cho phép một số thuật toán nén, mặc dù DEFLATE là phổ biến nhất. Vì vậy, về cơ bản, tệp ZIP được sử dụng để nén một số tệp và thư mục lớn thành một tệp lưu trữ nhỏ hơn. Do đó, có một số phần mềm có sẵn để tạo tệp ZIP hoặc trích xuất nội dung từ tệp ZIP
Tương tự, Python cũng có một số mô-đun để làm việc với các tệp ZIP hoặc để tạo chúng hoặc trích xuất dữ liệu từ chúng, chẳng hạn như zipfile, zipimport, Shutil, v.v.
Ở đây trong bài đăng này, chúng tôi sẽ sử dụng mô-đun zipfile, Shutil. Dưới dạng zipfile, Shutil là các mô-đun Python sẵn có. Vì vậy, bạn sẽ không cần phải cài đặt chúng bên ngoài
Tạo tệp ZIP bằng cách sử dụng shutdown# importing shutil module
import shutil
#using make_archive method to zip a whole directory
shutil.make_archive[output_filename, 'zip', dir_name]
phương thức make_archive[]
Nó yêu cầu ba đối số để tạo tệp ZIP
- base_name - tên của tệp đầu ra, bạn muốn tạo
- định dạng - định dạng của tệp lưu trữ. Chẳng hạn như zip, tar, gztar, bztar, xztar, v.v.
- root_dir hoặc base_dir - root_dir là thư mục sẽ là thư mục gốc của kho lưu trữ hoặc base_dir là thư mục nơi chúng tôi bắt đầu lưu trữ từ đó
Hãy nói về mô-đun zipfile trong Python
mô-đun zipfile cung cấp các công cụ để tạo, đọc, ghi, nối thêm và liệt kê tệp ZIP. Bất kỳ việc sử dụng nâng cao nào của mô-đun này sẽ yêu cầu hiểu biết về định dạng. 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 phần mở rộng ZIP64 [tức là các tệp ZIP có kích thước lớn 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 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
Tạo tệp ZIP bằng zipfile# importing ZipFile class from zipfile module
from zipfile import ZipFile
# more fine-grained control over ZIP files
with ZipFile["file_name.zip", "w"] as newzip:
newzip.write["file.txt"]
newzip.write["file2.jpg"]
viết phương pháp
Nó yêu cầu một đối số để tạo tệp ZIP
- tên tệp - nhập tên của tệp bạn muốn thêm vào tệp ZIP
Bên cạnh việc tạo tệp ZIP, chúng tôi cũng có thể trích xuất hoặc hiển thị nội dung từ tệp ZIP
Làm cách nào để trích xuất nội dung từ tệp ZIP?# importing ZipFile class from zipfile module
from zipfile import ZipFile
# specifying the zip file_name
file = "file_name.zip"
# opening the zip file in READ mode
with ZipFile[file, 'r'] as zip:
# extracting all contents
print['Extracting all the files now...']
zip.extractall[]
print['Done!']
phương thức giải nén []
phương thức extractall[] sẽ trích xuất tất cả nội dung của tệp zip vào thư mục làm việc hiện tại
Làm cách nào để in nội dung từ tệp ZIP?# importing ZipFile class from zipfile module
from zipfile import ZipFile
# specifying the zip file_name
file = "file_name.zip"
# opening the zip file in READ mode
with ZipFile[file, 'r'] as zip:
# printing all the contents of a zip file
zip.printdir[]
phương thức printdir[]
Phương thức printdir[] sẽ in tất cả nội dung của tệp zip
Có một số phương pháp cần thiết khác được sử dụng từ mô-đun zipfile. Hãy cùng tìm hiểu về chúng
- zipfile. is_zipfile[FILE_NAME] - phương thức is_zipfile[] được sử dụng để kiểm tra xem một tệp có phải là tệp ZIP hợp lệ hay không dựa trên số ma thuật của nó, nếu không sẽ trả về Sai. tên tệp cũng có thể là tệp hoặc đối tượng giống như tệp
Ví dụ
# importing zipfile module
import zipfile
# specifying the zip file_name
file = "file_name.zip"
# using the is_zipfile method
print[zipfile.is_zipfile[file]]
- Tệp Zip. Phương thức close[] close[] của lớp ZipFile được sử dụng để đóng tệp lưu trữ. Vì vậy, hồ sơ thiết yếu đó sẽ không được viết. Như chúng ta đã sử dụng câu lệnh with trong các ví dụ trước, câu lệnh này sẽ tự động đóng tệp lưu trữ sau khi kết thúc câu lệnh with
Ví dụ
# importing ZipFile class from zipfile module
from zipfile import ZipFile
# closing the zip file
ZipFile.close[]
- Tệp Zip. namelist[] namelist[] phương thức của lớp ZipFile trả về một danh sách các thành viên lưu trữ theo tên
Ví dụ -
# importing ZipFile class from zipfile module
from zipfile import ZipFile
# specifying the zip file_name
file = "file_name.zip"
# opening the zip file in READ mode
with ZipFile[file, 'r'] as zip:
# to get archive members
print[zip.namelist[]]
- Tệp Zip. setpassword[PWD] Phương thức setpassword[] được sử dụng để đặt mật khẩu được sử dụng để mã hóa tệp zip, để giải nén nó
Ví dụ
# importing ZipFile class from zipfile module
from zipfile import ZipFile
# specifying the zip file_name
file = "file_name.zip"
# opening the zip file in READ mode
with ZipFile[file, 'r'] as zip:
# setting the pwd to extract files
zip.setpassword["ganofins"]
# extracting all contents
zip.extractall[]
print['Done!']
- Tệp Zip. infolist[] phương thức infolist[] được sử dụng để trả về một danh sách chứa đối tượng ZipInfo cho từng thành viên của kho lưu trữ. Các đối tượng có cùng thứ tự với các mục nhập của chúng trong tệp ZIP thực trên đĩa nếu một kho lưu trữ hiện có được mở
Ví dụ
________số 8- Tệp Zip. Phương thức getinfo[NAME] getinfo[] được sử dụng để trả về một đối tượng ZipInfo với thông tin về tên thành viên kho lưu trữ
Ví dụ
# importing ZipFile class from zipfile module
from zipfile import ZipFile
# specifying the zip file_name
file = "file_name.zip"
# opening the zip file in READ mode
with ZipFile[file, 'r'] as zip:
# to get a list containing a ZipInfo object
print[zip.getinfo["test"]]
Chà, tôi hy vọng bạn hiểu bạn để giải nén các tệp bằng Python. Nếu bạn có bất kỳ câu hỏi nào liên quan đến vấn đề này, vui lòng hỏi chúng tôi trong phần thảo luận bên dưới
Với bài viết này tại OpenGenus, bạn phải có ý tưởng hoàn chỉnh về cách tạo tệp ZIP bằng Python và xử lý nó. Vui thích