تقنية

LZMA في بايثون: هل يفك الاكتشاف التلقائي التدفق الخام؟

الاكتشاف التلقائي يرفع خطأ مع التدفق الخام
الفك الافتراضي. [1] [2]

التدفق الخام يحتاج إعدادات معلنة. [1] [2]

الخلاصة السريعة

FORMAT_AUTO لا يفك FORMAT_RAW؛ حدد التنسيق وسلسلة المرشحات. [1] [2]

  • ضغطنا b"bud" بتنسيق خام ومرشح LZMA2. [1] [2]
  • حجم القاموس 1048576 بايتًا. [1] [2]
  • الفك الافتراضي يرفع LZMAError في المثال. [1] [2]
  • الفك الخام بمرشحنا يعيد b'bud'. [1] [2]
  • الخام بلا فحص سلامة؛ مثال مؤلف في 3.12.14 دون ملفات. [1] [2]

المثال

import lzma as l
f=[dict(id=l.FILTER_LZMA2,
    dict_size=1<<20)]
raw=l.compress(b"bud",
    format=l.FORMAT_RAW,filters=f)
try:
    l.decompress(raw)
except l.LZMAError:
    print("LZMAError")
print(l.decompress(raw,
    format=l.FORMAT_RAW,filters=f))

[1] [2]

التنسيق والإعداد

المصدر يمرر التنسيق والمرشحات إلى كائن الفك. الخام بلا حاوية؛ الدليل يطلب سلسلة مرشحات صريحة للضغط والفك، فلا يجعل نجاح الضغط الاكتشاف التلقائي مناسبًا. [1] [2]

تحديد الخام والمرشح يعيد bud
إعدادات معلنة. [1] [2]

النطاق

المخرجان LZMAError ثم b'bud'. احتفظنا بإعدادات المرشح للمرحلتين؛ لم نخمنها من البايتات أو نختبر ملفًا خارجيًا. نجاح الاسترجاع هنا لا يمنح التدفق الخام فحص سلامة. [1] [2]

المراجع

  1. Python 3.12: LZMA raw format and filters
  2. CPython 3.12.14: LZMA wrappers
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.