التابع zlib.decompress()‎ في بايثون

من موسوعة حسوب
< Python‏ | zlib
مراجعة 17:40، 8 نوفمبر 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>zlib.decompress()‎</code> في بايثون}}</noinclude> تفكّ الدالة الضغط عن البايتات في ا...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد كائن bytes يحتوي على البيانات التي أزيل الضغط عنها.

البنية العامة

zlib.decompress(data, wbits=MAX_WBITS, bufsize=DEF_BUF_SIZE)

المعاملات

wbits يعتمد هذا المعامل على صيغة البيانات المعطاة، وسنتحدث عنه بتفصيل أكبر أدناه.

bufsize إن كان هذا المعامل متوفّرًا، فإنّه يستخدم كحجم ابتدائي لذاكرة المخرجات.

تطلق الدالة الاستثناء error عند حدوث الأخطاء.

يتحكّم المعامل wbits بحجم ذاكرة تخزين التاريخ history buffer (أو ما يطلق عليه "حجم النافذة") المستخدمة في ضغط البيانات، ويتحكّم كذلك فيما إذا كانت مخرجات الدالة تتضمّن ترويسة وتذييلًا. هذا المعامل يشبه نظيره في الدالة compressobj()‎ ولكنّه يأخذ نطاقات أكثر من القيم:

‎+8 إلى ‎+15: لوغاريتم ذو الأساس 2 لحجم النافذة. يجب أن تتضمّن المدخلات ترويسة وتذييل مكتبة zlib.

0: تحدّد الدالة حجم النافذة تلقائيًا مستعينة في ذلك بترويسة zlib. هذه القيمة مدعومة في الإصدار 1.2.3.5 من zlib.

‎-8 إلى ‎-15: تستخدم الدالة القيمة المطلقة للمعامل wbits كلوغاريتم لحجم النافذة، ويجب أن لا تتضمّن المدخلات ترويسة أو تذييلًا.

‎+24 إلى ‎+31 = ‏16 + (8 إلى 15): تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، ويجب أن تتضمّن المدخلات ترويسة وتذييل gzip.

‎+40 إلى ‎+47 = ‏32 + (8 إلى 15): تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، وتستقبل تلقائيًا صيغة zlib أو gzip.

عند فك ضغط تدفّق معيّن من البيانات، يجب أن لا يكون حجم النافذة أصغر من الحجم المستخدم لضغط تدفق البيانات، إذ يؤدي استخدام قيمة صغيرة للغاية إلى إطلاق الاستثناء error. ترتبط قيمة wbits الافتراضية بأعلى حجم للنافذة وتتطلب تضمين ترويسة وتذييل zlib في المدخلات.

bufsize هو الحجم الابتدائي للذاكرة المستخدمة لتخزين البيانات مفكوكة الضغط. سيزداد حجم الذاكرة المستخدمة حسب الحاجة؛ لذا لا حاجة إلى تقديم قيمة مضبوطة لهذا المعامل، ولكنّ تعديل القيمة سيوفّر بعض الاستدعاءات للدالة malloc()‎.

ملاحظة: في الإصدار 3.6 من بايثون أصبح بالإمكان استخدام wbits و bufsize كمعاملين مفتاحيين.

القيمة المعادة

تعيد الدالة كائن bytes يحتوي على البيانات التي أزيل الضغط عنها.

انظر أيضًا

مصادر

صفحة Compression compatible with gzip في توثيق بايثون الرسمي.