ملخص

تسمح مكتبتنا بالضغط متعدد الدفق لبعض التنسيقات. يتيح لك ذلك زيادة سرعة ضغط البيانات بشكل ملحوظ.

موازنة أرشيفات BZIP2 وLZIP وXZ

يمكن ضبط عدد خيوط الضغط من خلال خاصية "خيوط الضغط" لفئة الإعدادات المقابلة. القيمة الافتراضية هي 1، وبالتالي يتم إجراء الضغط على مؤشر ترابط واحد. ومع ذلك، إذا قمت بتعيين قيمة أكبر من واحد، فستستخدم الخوارزمية العدد المقابل من مراكز المعالج

Parallel compression to BZIP2

    save_options =  zp.bzip2.Bzip2SaveOptions()
    save_options.compression_threads = 4
    with zp.bzip2.Bzip2Archive() as archive:
        archive.set_source("data.bin")
        archive.save("archive.bz2", save_options)

Parallel compression to LZIP

    # Will use 16Mb for dictionary:
    settings = zp.lzip.LzipArchiveSettings(0x1000000)
    settings.compression_threads = 4
    with zp.lzip.LzipArchive(settings) as archive:
        archive.set_source("data.bin")
        archive.save("archive.lz")

Parallel compression to XZ

    settings = zp.xz.settings.XzArchiveSettings()
    settings.compression_threads = 4
    with zp.xz.XzArchive(settings) as archive:
        archive.set_source("data.bin")
        archive.save("archive.xz")

في هذه الأمثلة، تنفذ مقتطفات كود Python إجراءات مماثلة لإنشاء أرشيفات، وتختلف فقط في تنسيقات الضغط المستخدمة. وعادةً ما تتبع الخطوات التالية:

  • قم بإنشاء كائن إعدادات خاص بتنسيق الأرشيف.
  • قم بتعيين عدد التدفقات المتوازية للضغط.
  • يتم إنشاء كائن أرشيف في السياق، مما يضمن الإغلاق التلقائي للأرشيف بعد اكتمال العمليات.
  • حدد مصدر البيانات المراد إضافتها إلى الأرشيف.
  • احفظ الأرشيف بالتنسيق المناسب باستخدام الإعدادات التي تم تكوينها.

ضغط LZMA2 وتعدد مؤشرات الترابط في أرشيفات 7Z

يوضح هذا المثال كيفية إنشاء أرشيف 7z باستخدام ملف data.bin. نحن نستخدم خوارزمية ضغط LZMA2 مع أربعة تدفقات لضغط البيانات بكفاءة.

Parallel compression to 7Z LZMA2

    compression_settings = zp.saving.SevenZipLZMA2CompressionSettings()
    compression_settings.compression_threads = 4
    entry_settings = zp.saving.SevenZipEntrySettings(compression_settings)
    with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
        archive.create_entry("data.bin", "data.bin")
        archive.save("result.7z")

يقوم هذا الرمز بإنشاء أرشيف 7z عن طريق قراءة البيانات من ملف data.bin، باستخدام SevenZipLZMA2CompressionSettings بدلاً من إعدادات Bzip2 أو Lzip أو XZ وخوارزمية الضغط LZMA2 بأربعة مؤشرات ترابط للضغط. يستخدم طريقة create_entry الخاصة بـ SevenZipArchive بدلاً من طريقة set_source.

تسريع أرشفة ملفات ZIP باستخدام الضغط المتوازي

يمكن موازنة إنشاء أرشيف ZIP على مستوى الإدخال. للقيام بذلك، استخدم مثيل ParallelOptions وخصائصه

    parallel_opt = zp.saving.ParallelOptions()
    parallel_opt.parallel_compress_in_memory =  zp.saving.ParallelCompressionMode.AUTO
    save_opt =  zp.saving.ArchiveSaveOptions()
    save_opt.parallel_options = parallel_opt
    with zp.Archive as archive:
        archive.create_entries("~/Data")
        archive.Save("archive.zip", save_opt)

الميزات الرئيسية هي:

  • استخدام ParallelOptions لتكوين الضغط المتوازي في الذاكرة.
  • استخدام ArchiveSaveOptions لإعدادات الحفظ العامة.
  • استخدام طريقة create_entries لإضافة ملفات من دليل ~/Data إلى الأرشيف.
برجاء الرجوع إلى الوثائق لفهم معنى قيم تعداد ParallelCompressionMode بشكل أفضل. العب بهذه القيم للوصول إلى أفضل نتيجة بشكل صريح لأغراضك وتكوين الأجهزة.

ميزات Aspose.ZIP الأخرى المدعومة لـ Python.Net API

باستخدام مكتبة Aspose.ZIP في Python.Net، يمكنك التعامل بسهولة مع المهام المتنوعة المتعلقة بمستندات الملفات المضغوطة. سواء كنت بحاجة إلى تحويل التنسيقات أو دمج الملفات أو تحرير المحتويات أو استخراج البيانات، فإن Aspose.ZIP يوفر وظائف شاملة لتبسيط سير عملك وتحسين الإنتاجية.

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: