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

Python ไฟล์ ZIP

คำอธิบายรหัส

  • นำเข้าคลาส make_archive จากโมดูล shutil
  • ใช้ฟังก์ชันแยกเพื่อแยกไดเรกทอรีและชื่อไฟล์ออกจากเส้นทางไปยังตำแหน่งของไฟล์ข้อความ (guru99)
  • จากนั้นเราเรียกโมดูล “shutil.make_archive(“guru99 archive, “zip”, root_dir)” เพื่อสร้างไฟล์เก็บถาวร ซึ่งจะอยู่ในรูปแบบ zip
  • หลังจากนั้นเราจะส่งต่อไปยังไดเร็กทอรีรูทของสิ่งต่าง ๆ ที่เราต้องการจะบีบอัด ดังนั้นทุกอย่างในไดเร็กทอรีจะถูกซิป
  • เมื่อคุณรันโค้ด คุณจะเห็นว่าไฟล์ zip เก็บถาวรถูกสร้างขึ้นที่ด้านขวาของแผง

ขั้นตอน 2) เมื่อสร้างไฟล์เก็บถาวรแล้ว คุณสามารถคลิกขวาที่ไฟล์และเลือกระบบปฏิบัติการ จากนั้นจะแสดงไฟล์เก็บถาวรในนั้นตามที่แสดงด้านล่าง

Python ไฟล์ ZIP

ตอนนี้ไฟล์ archive.zip ของคุณจะปรากฏบนระบบปฏิบัติการของคุณ (Windows Explorer)

Python ไฟล์ ZIP

ขั้นตอน 3) เมื่อคุณดับเบิลคลิกที่ไฟล์ คุณจะเห็นรายการไฟล์ทั้งหมดในนั้น

Python ไฟล์ ZIP

ขั้นตอน 4) In Python เราสามารถควบคุมไฟล์เก็บถาวรได้มากขึ้นเนื่องจากเราสามารถกำหนดไฟล์เฉพาะที่จะรวมไว้ภายใต้ไฟล์เก็บถาวรได้ ในกรณีของเรา เราจะรวมไฟล์สองไฟล์ไว้ภายใต้ไฟล์เก็บถาวร “guru99.txt” และ “guru99.txt.bak”

Python ไฟล์ ZIP

คำอธิบายรหัส

  • นำเข้าคลาส 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)มันจะแสดงไฟล์เก็บถาวรในโฟลเดอร์ดังแสดงด้านล่างนี้

Python ไฟล์ ZIP

เมื่อคุณดับเบิลคลิกไฟล์ “testguru99.zip” หน้าต่างอื่นจะเปิดขึ้นมา และจะแสดงไฟล์ต่างๆ ที่รวมอยู่ในนั้น

Python ไฟล์ 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)”