الفرق بين المراجعتين لصفحة: «Python/zlib/decompress»

من موسوعة حسوب
< Python‏ | zlib
لا ملخص تعديل
لا ملخص تعديل
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>zlib.decompress()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>zlib.decompress()‎</code> في بايثون}}</noinclude>


تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد كائن bytes يحتوي على البيانات التي أزيل الضغط عنها.
تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد كائن [[Python/bytes|<code>bytes</code>]] يحتوي على البيانات التي أزيل الضغط عنها.


== البنية العامة ==
== البنية العامة ==
سطر 10: سطر 10:
== المعاملات ==
== المعاملات ==
wbits
 
=== <code>wbits</code> ===
يعتمد هذا المعامل على صيغة البيانات المعطاة، وسنتحدث عنه بتفصيل أكبر أدناه.
يعتمد هذا المعامل على صيغة البيانات المعطاة، وسنتحدث عنه بتفصيل أكبر أدناه.


bufsize
يتحكّم المعامل <code>wbits</code> بحجم ذاكرة تخزين التاريخ history buffer (أو ما يطلق عليه "حجم النافذة window size") المستخدمة في ضغط البيانات، ويتحكّم كذلك فيما إذا كانت مخرجات الدالة تتضمّن ترويسة وتذييلًا. هذا المعامل يشبه نظيره في الدالة <code>[[Python/zlib/compressobj|compressobj()‎]]</code> ولكنّه يأخذ نطاقات أكثر من القيم:
إن كان هذا المعامل متوفّرًا، فإنّه يستخدم كحجم ابتدائي لذاكرة المخرجات.


تطلق الدالة الاستثناء error عند حدوث الأخطاء.
‎<code>+8</code> إلى ‎<code>+15</code>: لوغاريتم ذو الأساس 2 لحجم النافذة. يجب أن تتضمّن المدخلات ترويسة وتذييل مكتبة zlib.


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


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


0: تحدّد الدالة حجم النافذة تلقائيًا مستعينة في ذلك بترويسة zlib. هذه القيمة مدعومة في الإصدار 1.2.3.5 من zlib.
<code>‎+24</code> إلى ‎<code>+31</code> <code>= ‏16 + (8</code> إلى <code>15)</code>: تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، ويجب أن تتضمّن المدخلات ترويسة وتذييل gzip.


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


‎+24 إلى ‎+31 = ‏16 + (8 إلى 15): تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، ويجب أن تتضمّن المدخلات ترويسة وتذييل gzip.
عند فك ضغط تدفّق معيّن من البيانات، يجب أن لا يكون حجم النافذة أصغر من الحجم المستخدم لضغط تدفق البيانات، إذ يؤدي استخدام قيمة صغيرة للغاية إلى إطلاق [[Python/zlib#.D8.A7.D9.84.D8.A7.D8.B3.D8.AA.D8.AB.D9.86.D8.A7.D8.A1 zlib.error|الاستثناء <code>error</code>]]. ترتبط قيمة <code>wbits</code> الافتراضية بأعلى حجم للنافذة وتتطلب تضمين ترويسة وتذييل zlib في المدخلات.


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


عند فك ضغط تدفّق معيّن من البيانات، يجب أن لا يكون حجم النافذة أصغر من الحجم المستخدم لضغط تدفق البيانات، إذ يؤدي استخدام قيمة صغيرة للغاية إلى إطلاق الاستثناء error. ترتبط قيمة wbits الافتراضية بأعلى حجم للنافذة وتتطلب تضمين ترويسة وتذييل zlib في المدخلات.
تطلق الدالة [[Python/zlib#.D8.A7.D9.84.D8.A7.D8.B3.D8.AA.D8.AB.D9.86.D8.A7.D8.A1 zlib.error|الاستثناء <code>error</code>]] عند حدوث الأخطاء.


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


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


== القيمة المعادة ==
== القيمة المعادة ==
تعيد الدالة كائن bytes يحتوي على البيانات التي أزيل الضغط عنها.
تعيد الدالة كائن <code>[[Python/str|bytes]]</code> يحتوي على البيانات التي أزيل الضغط عنها.


== انظر أيضًا ==
== انظر أيضًا ==
* الدالة <code>[[Python/zlib/compressobj|zlib.compress()]]‎</code>: تضغط الدالة البايتات المعطاة، وتعيد <nowiki/>[[Python/bytes|كائن <code>bytes</code>]] يتضمّن البيانات المضغوطة.
* الدالة [[Python/zlib/compressobj|<code>zlib.compressobj()</code>‎]]: تعيد الدالة كائن ضغط يمكن استخدامه لضغط البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.
* الدالة <code>[[Python/zlib/decompressobj|zlib.decompressobj()]]</code>‎: تعيد الدالة كائن فك الضغط يمكن استخدامه لفك الضغط عن البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.


== مصادر ==
== مصادر ==
[https://docs.python.org/3/library/zlib.html#zlib.decompress صفحة Compression compatible with gzip في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/zlib.html#zlib.decompress صفحة Compression compatible with gzip في توثيق بايثون الرسمي.]
 
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Modules]]
[[تصنيف:Python Modules]]

المراجعة الحالية بتاريخ 17:55، 8 نوفمبر 2018


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

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

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

المعاملات

wbits

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

يتحكّم المعامل wbits بحجم ذاكرة تخزين التاريخ history buffer (أو ما يطلق عليه "حجم النافذة window size") المستخدمة في ضغط البيانات، ويتحكّم كذلك فيما إذا كانت مخرجات الدالة تتضمّن ترويسة وتذييلًا. هذا المعامل يشبه نظيره في الدالة 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

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

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

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

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

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

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

انظر أيضًا

  • الدالة zlib.compress(): تضغط الدالة البايتات المعطاة، وتعيد كائن bytes يتضمّن البيانات المضغوطة.
  • الدالة zlib.compressobj(): تعيد الدالة كائن ضغط يمكن استخدامه لضغط البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.
  • الدالة zlib.decompressobj()‎: تعيد الدالة كائن فك الضغط يمكن استخدامه لفك الضغط عن البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.

مصادر