Python ZIP พร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
Python สร้างไฟล์ ZIP ด้วยโมดูล shutil และ zipfile ที่มีมาให้ในตัว ที่นี่คุณจะได้เรียนรู้วิธีบีบอัดทั้งไดเร็กทอรีโดยใช้ make_archive() บีบอัดไฟล์เฉพาะด้วย ZipFile และอื่นๆtract, แสดงรายการ และอ่านเนื้อหาในคลังข้อมูล

Python ช่วยให้คุณสร้างไฟล์ zip/tar ได้อย่างรวดเร็ว
คำสั่งต่อไปนี้จะบีบอัดไดเรกทอรีทั้งหมด
shutil.make_archive(output_filename, 'zip', dir_name)
คำสั่งต่อไปนี้ช่วยให้คุณควบคุมไฟล์ที่คุณต้องการเก็บถาวรได้
ZipFile.write(filename)
วิธีบีบอัดไฟล์ทั้งไดเร็กทอรีด้วยไฟล์ Zip Python
ขั้นตอนการสร้างไฟล์ Zip มีดังนี้ Python
ขั้นตอน 1) เพื่อสร้างไฟล์เก็บถาวรจาก Pythonตรวจสอบให้แน่ใจว่าคุณมีคำสั่งนำเข้าที่ถูกต้องและเป็นระเบียบ คำสั่งนำเข้าสำหรับไฟล์เก็บถาวรคือ from shutil import make_archive
Code คำอธิบาย
- นำเข้าคลาส make_archive จากโมดูล shutil
- ใช้ฟังก์ชันแยกเพื่อแยกไดเรกทอรีและชื่อไฟล์ออกจากเส้นทางไปยังตำแหน่งของไฟล์ข้อความ (guru99)
- จากนั้นเราเรียกโมดูล “shutil.make_archive(“guru99 archive, “zip”, root_dir)” เพื่อสร้างไฟล์เก็บถาวร ซึ่งจะอยู่ในรูปแบบ zip
- หลังจากนั้นเราจะส่งต่อไปยังไดเร็กทอรีรูทของสิ่งต่าง ๆ ที่เราต้องการจะบีบอัด ดังนั้นทุกอย่างในไดเร็กทอรีจะถูกซิป
- เมื่อคุณรันโค้ด คุณจะเห็นว่าไฟล์ zip เก็บถาวรถูกสร้างขึ้นที่ด้านขวาของแผง
ขั้นตอน 2) เมื่อสร้างไฟล์เก็บถาวรแล้ว คุณสามารถคลิกขวาที่ไฟล์และเลือกระบบปฏิบัติการ จากนั้นจะแสดงไฟล์เก็บถาวรในนั้นตามที่แสดงด้านล่าง
ตอนนี้ไฟล์ archive.zip ของคุณจะปรากฏบนระบบปฏิบัติการของคุณ (Windows Explorer)
ขั้นตอน 3) เมื่อคุณดับเบิลคลิกที่ไฟล์ คุณจะเห็นรายการไฟล์ทั้งหมดในนั้น
วิธีบีบอัดไฟล์เฉพาะโดยใช้ ZipFile
ขั้นตอน 4) In Python เราสามารถควบคุมไฟล์เก็บถาวรได้มากขึ้นเนื่องจากเราสามารถกำหนดไฟล์เฉพาะที่จะรวมไว้ภายใต้ไฟล์เก็บถาวรได้ ในกรณีของเรา เราจะรวมไฟล์สองไฟล์ไว้ภายใต้ไฟล์เก็บถาวร “guru99.txt” และ “guru99.txt.bak”
Code คำอธิบาย
- นำเข้าคลาส Zipfile จากไฟล์ zip Python โมดูล โมดูลนี้ให้การควบคุมเต็มรูปแบบในการสร้างไฟล์ zip
- เราสร้างไฟล์ Zip ใหม่ด้วยชื่อ ( “testguru99.zip, “w”)
- การสร้างคลาส Zipfile ใหม่ต้องผ่านการอนุญาตเนื่องจากเป็นไฟล์จึงต้องเขียนข้อมูลลงในไฟล์เป็น newzip
- เราใช้ตัวแปร “newzip” เพื่ออ้างถึงไฟล์ zip ที่เราสร้างขึ้น
- การใช้ฟังก์ชันการเขียนในตัวแปร “newzip” เราเพิ่มไฟล์ “guru99.txt” และ “guru99.txt.bak” ลงในไฟล์เก็บถาวร
เมื่อคุณรันโค้ด คุณจะเห็นว่าไฟล์ถูกสร้างขึ้นที่ด้านขวาของแผงชื่อ “guru99.zip”
หมายเหตุ: ในที่นี้เราไม่ได้ออกคำสั่งใดๆ ให้ “ปิด” ไฟล์เช่น “newzip.close” เพราะเราใช้การล็อคขอบเขต “ด้วย” ดังนั้นเมื่อโปรแกรมอยู่นอกขอบเขตนี้ ไฟล์จะถูกล้างและถูกปิดโดยอัตโนมัติ
ขั้นตอน 5) เมื่อคุณ -> คลิกขวาที่ไฟล์ (testguru99.zip) และ -> เลือกระบบปฏิบัติการของคุณ (Windows Explorer)มันจะแสดงไฟล์เก็บถาวรในโฟลเดอร์ดังแสดงด้านล่างนี้
เมื่อคุณดับเบิลคลิกไฟล์ “testguru99.zip” หน้าต่างอื่นจะเปิดขึ้นมา และจะแสดงไฟล์ต่างๆ ที่รวมอยู่ในนั้น
สมบูรณ์ Python Code เพื่อสร้างไฟล์ ZIP
นี่คือรหัสที่สมบูรณ์
Python 2 ตัวอย่าง
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 ตัวอย่าง
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")
วิธีการออกtract (แตกไฟล์ ZIP) ใน Python
ในการคลายไฟล์บีบอัด ให้เปิดไฟล์ในโหมดอ่านด้วย ZipFile แล้วเรียกใช้ extracสูง() ถึง extracในทุกไฟล์ หรือตัวอย่างtract() เพื่อดึงสมาชิกออกมาทีละคน
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: myzip.extractall("extracted_files")
อดีตtracเมธอด tall() จะเขียนไฟล์ที่เก็บถาวรทั้งหมดลงในโฟลเดอร์ที่คุณส่งเป็นอาร์กิวเมนต์
วิธีการแสดงรายการไฟล์ในไฟล์ ZIP Archive
คุณสามารถตรวจสอบไฟล์เก็บถาวรได้โดยไม่ต้องออกจากระบบtracเรียกใช้เมธอด namelist() ซึ่งจะส่งคืนชื่อของไฟล์ทุกไฟล์ที่จัดเก็บอยู่ภายในไฟล์ ZIP
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: print(myzip.namelist())
คำสั่งนี้จะแสดงรายการไฟล์ทั้งหมดที่อยู่ในไฟล์เก็บถาวร
วิธีอ่านไฟล์ภายในไฟล์ ZIP Archive
คุณสามารถอ่านไฟล์สมาชิกได้โดยตรงจากไฟล์เก็บถาวรโดยไม่ต้องแตกไฟล์ping บันทึกไฟล์ลงดิสก์โดยใช้เมธอด open() ของ ZipFile
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: with myzip.open("guru99.txt") as f: print(f.read())
วิธีนี้มีประโยชน์เมื่อคุณต้องการเพียงเนื้อหาของไฟล์เดียวจากไฟล์เก็บข้อมูลขนาดใหญ่







