สร้าง ZIP ใน Python

ZIP ไฟล์เก็บถาวรบีบอัดและรวมไฟล์หรือโฟลเดอร์หลาย ๆ ไฟล์ไว้ในคอนเทนเนอร์ที่รวมเป็นหนึ่งเดียว ไฟล์ ZIP ไม่เพียงแต่ห่อหุ้มไฟล์และโฟลเดอร์เท่านั้น แต่ยังเก็บรักษาข้อมูลเมตาไว้ด้วย โดยส่วนใหญ่จะลดขนาดไฟล์สำหรับการจัดเก็บ/การส่ง และเพิ่มความปลอดภัยผ่านการเข้ารหัส นอกเหนือจากเครื่องมือบีบอัดไฟล์แบบเดิมๆ แล้ว เดสก์ท็อปและเว็บแอปพลิเคชันยังรวมฟังก์ชันการบีบอัดและการแยกไฟล์อัตโนมัติ เพื่อปรับปรุงงานต่างๆ เช่น การอัปโหลด ดาวน์โหลด การแชร์ และการเข้ารหัสไฟล์ บทความนี้นำเสนอวิธีง่ายๆ ในการบีบอัดไฟล์หรือโฟลเดอร์และสร้างไฟล์ ZIP ใน Python นอกจากนี้ยังครอบคลุมถึงวิธีการสร้างไฟล์ ZIP ที่เข้ารหัสและป้องกันด้วยรหัสผ่านใน Python เรามาเจาะลึกมันกันดีกว่า

ไลบรารี ZIP ของ Python

Aspose.ZIP for Python เป็นไลบรารีที่ทรงพลังและอเนกประสงค์ที่ให้นักพัฒนามีชุดเครื่องมือที่ครอบคลุมเพื่อทำงานกับไฟล์ ZIP ในแอปพลิเคชัน Python ด้วย API ที่ใช้งานง่ายและฟีเจอร์ที่หลากหลาย Aspose.ZIP for Python ทำให้การสร้าง แตกไฟล์ และจัดการไฟล์ ZIP ได้อย่างมีประสิทธิภาพเป็นเรื่องง่าย คุณสามารถติดตั้งไลบรารี่ได้จาก PyPI โดยใช้คำสั่งต่อไปนี้

> pip install aspose-zip

สร้างไฟล์ ZIP ใน Python

ต่อไปนี้เป็นขั้นตอนในการบีบอัดไฟล์โดยเพิ่มลงในไฟล์ ZIP ใน Python

  • ขั้นแรก สร้างไฟล์ ZIP ใหม่โดยใช้คลาส Archive
  • จากนั้นเพิ่มไฟล์ลงในไฟล์ ZIP โดยใช้เมธอด Archive.createentry()
  • สุดท้าย ให้บันทึกไฟล์ ZIP โดยใช้วิธี Archive.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มไฟล์ลงในไฟล์ ZIP ใน Python

import aspose.zip as az

# สร้างและบันทึกไฟล์เก็บถาวรด้วยไฟล์เดียว
with az.Archive() as archive:
    # เพิ่มไฟล์ลงในไฟล์เก็บถาวร
    archive.create_entry("file", "file.txt")

    # สร้างและบันทึกไฟล์ zip
    archive.save('my_archive.zip')

เพิ่มหลายไฟล์ลงในไฟล์ ZIP ใน Python

ในส่วนก่อนหน้านี้ เราได้สาธิตวิธีการแทรกไฟล์เดียวลงในไฟล์ ZIP อย่างไรก็ตาม หากคุณมีมากกว่าหนึ่งไฟล์ คุณสามารถเรียกใช้เมธอด Archive.createentry() ซ้ำๆ ได้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแทรกไฟล์หลายไฟล์ลงในไฟล์ ZIP ใน Python

import aspose.zip as az

# สร้างและบันทึกไฟล์เก็บถาวรด้วยหลายไฟล์
with az.Archive() as archive:
    # เพิ่มไฟล์แรก
    archive.create_entry("file", "file.txt")

    # เพิ่มไฟล์ที่สอง
    archive.create_entry("file2", "file2.txt")

    # สร้างและบันทึกไฟล์ zip
    archive.save('my_archive.zip')

เพิ่มโฟลเดอร์ลงในไฟล์ ZIP ใน Python

ไม่เพียงแต่ไฟล์เท่านั้น แต่คุณยังสามารถบีบอัดโฟลเดอร์ลงในไฟล์ ZIP ได้อีกด้วย สำหรับสิ่งนี้ คุณไม่จำเป็นต้องเพิ่มแต่ละไฟล์ในโฟลเดอร์ไปยังไฟล์เก็บถาวรทีละไฟล์ เพียงเรียกใช้เมธอด Archive.createentries() ส่งชื่อโฟลเดอร์ เท่านี้ก็เรียบร้อย เพื่อความเข้าใจของคุณ ด้านล่างนี้คือขั้นตอนในการเก็บถาวรโฟลเดอร์ทั้งหมด

  • ขั้นแรก สร้างไฟล์เก็บถาวรใหม่โดยใช้คลาส Archive
  • จากนั้นเพิ่มโฟลเดอร์ลงในไฟล์ ZIP โดยใช้วิธี Archive.createentries (ชื่อโฟลเดอร์)
  • สุดท้าย ให้บันทึกไฟล์ ZIP โดยใช้วิธี Archive.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มโฟลเดอร์ลงใน ZIP ใน Python

import aspose.zip as az

# สร้างไฟล์เก็บถาวรจากโฟลเดอร์
with az.Archive() as archive:
    # เพิ่มโฟลเดอร์ลงใน zip
    archive.create_entries("files")

    # สร้างและบันทึกไฟล์ zip
    archive.save('my_archive_from_folder.zip')

สร้าง ZIP ที่ป้องกันด้วยรหัสผ่านใน Python

ในหลายกรณี เช่น ขณะแชร์ไฟล์เก็บถาวรบนอินเทอร์เน็ต คุณต้องป้องกันไฟล์ ZIP ด้วยรหัสผ่าน การสร้างไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่านโดยใช้ Aspose.ZIP for Python เป็นกระบวนการที่ไม่ซับซ้อนซึ่งช่วยเพิ่มความปลอดภัยให้กับไฟล์บีบอัดของคุณ มาดูวิธีป้องกันไฟล์ ZIP ด้วยรหัสผ่านใน Python

  • ขั้นแรก สร้างอ็อบเจ็กต์ของคลาส ArchiveEntrySettings และเริ่มต้นด้วยรหัสผ่านที่ต้องการ
  • จากนั้นสร้างอ็อบเจ็กต์ของคลาส Archive และเริ่มต้นด้วยอ็อบเจ็กต์ ArchiveEntrySettings ที่คุณสร้างไว้ด้านบน
  • หลังจากนั้นให้เพิ่มไฟล์และโฟลเดอร์ลงในไฟล์ ZIP
  • สุดท้าย ให้บันทึกไฟล์ ZIP โดยใช้วิธี Archive.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่านใน Python

import aspose.zip as az

# สร้างการตั้งค่าการเก็บถาวรและตั้งรหัสผ่าน
archive_settings = az.saving.ArchiveEntrySettings(None, az.saving.TraditionalEncryptionSettings("password"))

# สร้างและบันทึกไฟล์เก็บถาวรด้วยหลายไฟล์
with az.Archive(archive_settings) as archive:        
    # เพิ่มโฟลเดอร์ลงใน zip
    archive.create_entries("files")

    # สร้างและบันทึกไฟล์ zip
    archive.save('protected_archive.zip')

เข้ารหัสไฟล์ ZIP ด้วยการเข้ารหัส AES

ในตัวอย่างก่อนหน้านี้ เราใช้การตั้งค่าแบบดั้งเดิมเพื่อปกป้องไฟล์ ZIP ด้วยรหัสผ่าน อย่างไรก็ตาม Aspose.ZIP for Python อนุญาตให้คุณใช้การเข้ารหัส AES เพื่อเข้ารหัสไฟล์ ZIP ของคุณ คุณสามารถใช้วิธีการเข้ารหัส AES ต่อไปนี้:

  • AES128
  • AES192
  • AES256

กระบวนการใช้การเข้ารหัส AES จะเหมือนกับที่คุณได้เห็นในส่วนที่แล้ว ข้อแตกต่างเพียงอย่างเดียวคือ ขณะนี้คุณจะใช้ AesEcryptionSettings แทน TraditionalEncryptionSettings เมื่อกำหนดการตั้งค่าการเก็บถาวร ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีการใช้การเข้ารหัส AES กับไฟล์ ZIP ใน Python

import aspose.zip as az

# สร้างการตั้งค่าการเก็บถาวรและตั้งรหัสผ่าน
archive_settings = az.saving.ArchiveEntrySettings(None, az.saving.AesEcryptionSettings("pass", az.saving.EncryptionMethod.AES128))

# สร้างและบันทึกไฟล์เก็บถาวรด้วยหลายไฟล์
with az.Archive(archive_settings) as archive:        
    # เพิ่มโฟลเดอร์ลงใน zip
    archive.create_entries("files")

    # สร้างและบันทึกไฟล์ zip
    archive.save('protected_archive.zip')

ตั้งค่าโหมดการบีบอัดแบบขนาน

Aspose.ZIP for Python ยังให้คุณปรับแต่งกระบวนการเก็บ ZIP โดยใช้การตั้งค่าการบีบอัดแบบขนาน การกำหนดค่านี้จะบอก API เมื่อใดจึงจะใช้การบีบอัดแบบขนาน มีโหมดการบีบอัดแบบขนานดังต่อไปนี้

  • Never - ห้ามบีบอัดแบบขนาน
  • เสมอ - ทำการบีบอัดแบบขนาน (ระวังหน่วยความจำไม่เพียงพอ)
  • อัตโนมัติ - ตัดสินใจว่าจะใช้การบีบอัดแบบขนานหรือไม่กับรายการ ตัวเลือกนี้อาจบีบอัดบางรายการแบบขนานเท่านั้น

ต่อไปนี้เป็นขั้นตอนในการใช้การบีบอัดแบบขนานในขณะที่สร้างไฟล์ ZIP ใน Python

  • ขั้นแรก สร้างไฟล์เก็บถาวรใหม่โดยใช้คลาส Archive
  • จากนั้น เพิ่มไฟล์หรือโฟลเดอร์ลงในไฟล์ ZIP (ดังแสดงในส่วนก่อนหน้า)
  • สร้างอินสแตนซ์ของคลาส ParallelOptions และตั้งค่าคุณสมบัติparallelcompressinmemoryเป็นค่า ParallelCompressionMode ที่ต้องการ
  • สร้างอินสแตนซ์ของคลาส ArchiveSaveOptions
  • กำหนดออบเจ็กต์ ParallelOptions ให้กับคุณสมบัติ ArchiveSaveOptions.paralleloptions
  • สุดท้าย ให้บันทึกไฟล์ ZIP โดยใช้วิธี Archive.save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีใช้การบีบอัดแบบขนานขณะซิปไฟล์ใน Python

# สร้างและบันทึกไฟล์เก็บถาวรด้วยหลายไฟล์
import aspose.zip as az

with az.Archive() as archive:        
    # เพิ่มไฟล์/โฟลเดอร์ลงใน zip
    archive.create_entry("file", "file.txt")
    archive.create_entry("file2", "file2.txt")

    # สร้างตัวเลือกสำหรับการบีบอัดแบบขนาน
    parallelOptions = az.saving.ParallelOptions()
    parallelOptions.parallel_compress_in_memory = az.saving.ParallelCompressionMode.ALWAYS

    # สร้างตัวเลือกการบันทึก ZIP
    archiveSaveOptions = az.saving.ArchiveSaveOptions()

    archiveSaveOptions.parallel_options = parallelOptions
    archiveSaveOptions.archive_comment = "Files compressed with parallel compression."

    # สร้างและบันทึกไฟล์ zip
    archive.save('parallel_compression_archive.zip', archiveSaveOptions)

รับใบอนุญาตฟรี

คุณสามารถรับ [ใบอนุญาตชั่วคราวฟรี] และบีบอัดไฟล์ไปยังไฟล์ ZIP โดยไม่มีข้อจำกัดในการประเมิน

Python ZIP Library - แหล่งข้อมูล

คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับไลบรารี Python ZIP ของเราได้โดยใช้แหล่งข้อมูลต่อไปนี้:

สร้างไฟล์ ZIP ออนไลน์

ลองใช้ แอปพลิเคชันบีบอัดไฟล์ฟรี ซึ่งขับเคลื่อนโดย Aspose.ZIP for Python

บทสรุป

โดยสรุป Aspose.ZIP for Python นำเสนอโซลูชันที่แข็งแกร่งและอเนกประสงค์สำหรับการสร้างและจัดการไฟล์ ZIP ได้อย่างง่ายดาย ด้วยชุดคุณสมบัติที่ครอบคลุม นักพัฒนาสามารถรวมฟังก์ชัน ZIP เข้ากับแอปพลิเคชัน Python ของตนได้อย่างราบรื่น ไม่ว่าจะเป็นการบีบอัดไฟล์ การเพิ่มการเข้ารหัส หรือการจัดระเบียบโครงสร้างไดเร็กทอรีที่ซับซ้อน Aspose.ZIP มีชุดเครื่องมือที่เชื่อถือได้เพื่อปรับปรุงงานเหล่านี้

บทความนี้จะให้คำแนะนำฉบับสมบูรณ์เกี่ยวกับวิธีสร้างไฟล์ ZIP ใน Python นอกจากนี้ เราได้กล่าวถึงวิธีการเก็บถาวรไฟล์และโฟลเดอร์หลายรายการ สร้างไฟล์ ZIP ที่ป้องกันด้วยรหัสผ่าน ใช้การเข้ารหัส AES และกำหนดค่าวิธีการบีบอัด ZIP แบบขนาน คุณสามารถรวมไลบรารีเข้ากับแอปพลิเคชัน Python ของคุณได้อย่างง่ายดาย และใช้ตัวอย่างโค้ดที่ให้มา

ดูสิ่งนี้ด้วย