Python ZIP พร้อมตัวอย่าง
Python ช่วยให้คุณสร้างไฟล์ zip/tar ได้อย่างรวดเร็ว
คำสั่งต่อไปนี้จะบีบอัดไดเรกทอรีทั้งหมด
shutil.make_archive(output_filename, 'zip', dir_name)
คำสั่งต่อไปนี้ช่วยให้คุณควบคุมไฟล์ที่คุณต้องการเก็บถาวรได้
ZipFile.write(filename)
ขั้นตอนการสร้างไฟล์ Zip มีดังนี้ Python
ขั้นตอน 1) เพื่อสร้างไฟล์เก็บถาวรจาก Pythonตรวจสอบให้แน่ใจว่าคุณมีคำสั่งนำเข้าที่ถูกต้องและเป็นระเบียบ คำสั่งนำเข้าสำหรับไฟล์เก็บถาวรคือ from shutil import make_archive
คำอธิบายรหัส
- นำเข้าคลาส make_archive จากโมดูล shutil
- ใช้ฟังก์ชันแยกเพื่อแยกไดเรกทอรีและชื่อไฟล์ออกจากเส้นทางไปยังตำแหน่งของไฟล์ข้อความ (guru99)
- จากนั้นเราเรียกโมดูล “shutil.make_archive(“guru99 archive, “zip”, root_dir)” เพื่อสร้างไฟล์เก็บถาวร ซึ่งจะอยู่ในรูปแบบ zip
- หลังจากนั้นเราจะส่งต่อไปยังไดเร็กทอรีรูทของสิ่งต่าง ๆ ที่เราต้องการจะบีบอัด ดังนั้นทุกอย่างในไดเร็กทอรีจะถูกซิป
- เมื่อคุณรันโค้ด คุณจะเห็นว่าไฟล์ zip เก็บถาวรถูกสร้างขึ้นที่ด้านขวาของแผง
ขั้นตอน 2) เมื่อสร้างไฟล์เก็บถาวรแล้ว คุณสามารถคลิกขวาที่ไฟล์และเลือกระบบปฏิบัติการ จากนั้นจะแสดงไฟล์เก็บถาวรในนั้นตามที่แสดงด้านล่าง
ตอนนี้ไฟล์ archive.zip ของคุณจะปรากฏบนระบบปฏิบัติการของคุณ (Windows Explorer)
ขั้นตอน 3) เมื่อคุณดับเบิลคลิกที่ไฟล์ คุณจะเห็นรายการไฟล์ทั้งหมดในนั้น
ขั้นตอน 4) In Python เราสามารถควบคุมไฟล์เก็บถาวรได้มากขึ้นเนื่องจากเราสามารถกำหนดไฟล์เฉพาะที่จะรวมไว้ภายใต้ไฟล์เก็บถาวรได้ ในกรณีของเรา เราจะรวมไฟล์สองไฟล์ไว้ภายใต้ไฟล์เก็บถาวร “guru99.txt” และ “guru99.txt.bak”
คำอธิบายรหัส
- นำเข้าคลาส 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 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")
สรุป
- หากต้องการบีบอัดไดเรกทอรีทั้งหมด ให้ใช้คำสั่ง “shutil.make_archive(“name”,”zip”, root_dir)
- ในการเลือกไฟล์ที่จะ zip ให้ใช้คำสั่ง “ZipFile.write(filename)”