الفرق بين المراجعتين لصفحة: «Python/zlib/decompress»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>zlib.decompress()</code> في بايثون}}</noinclude> تفكّ الدالة الضغط عن البايتات في ا...' |
لا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الدالة <code>zlib.decompress()</code> في بايثون}}</noinclude> | ||
تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد كائن bytes يحتوي على البيانات التي أزيل الضغط عنها. | تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد كائن [[Python/bytes|<code>bytes</code>]] يحتوي على البيانات التي أزيل الضغط عنها. | ||
== البنية العامة == | == البنية العامة == | ||
سطر 10: | سطر 10: | ||
| | ||
== المعاملات == | == المعاملات == | ||
wbits | |||
=== <code>wbits</code> === | |||
يعتمد هذا المعامل على صيغة البيانات المعطاة، وسنتحدث عنه بتفصيل أكبر أدناه. | يعتمد هذا المعامل على صيغة البيانات المعطاة، وسنتحدث عنه بتفصيل أكبر أدناه. | ||
يتحكّم المعامل <code>wbits</code> بحجم ذاكرة تخزين التاريخ history buffer (أو ما يطلق عليه "حجم النافذة window size") المستخدمة في ضغط البيانات، ويتحكّم كذلك فيما إذا كانت مخرجات الدالة تتضمّن ترويسة وتذييلًا. هذا المعامل يشبه نظيره في الدالة <code>[[Python/zlib/compressobj|compressobj()]]</code> ولكنّه يأخذ نطاقات أكثر من القيم: | |||
<code>+8</code> إلى <code>+15</code>: لوغاريتم ذو الأساس 2 لحجم النافذة. يجب أن تتضمّن المدخلات ترويسة وتذييل مكتبة zlib. | |||
<code>0</code>: تحدّد الدالة حجم النافذة تلقائيًا مستعينة في ذلك بترويسة zlib. هذه القيمة مدعومة في الإصدار 1.2.3.5 من zlib. | |||
| <code>-8</code> إلى <code>-15</code>: تستخدم الدالة القيمة المطلقة للمعامل wbits كلوغاريتم لحجم النافذة، ويجب أن لا تتضمّن المدخلات ترويسة أو تذييلًا. | ||
<code>+24</code> إلى <code>+31</code> <code>= 16 + (8</code> إلى <code>15)</code>: تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، ويجب أن تتضمّن المدخلات ترويسة وتذييل gzip. | |||
| <code>+40</code> إلى <code>+47 = 32 + (8</code> إلى <code>15)</code>: تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، وتستقبل تلقائيًا صيغة zlib أو 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 في المدخلات. | |||
=== <code>bufsize</code> === | |||
إن كان هذا المعامل متوفّرًا، فإنّه يستخدم كحجم ابتدائي لذاكرة المخرجات. | |||
تطلق الدالة [[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()
: تعيد الدالة كائن فك الضغط يمكن استخدامه لفك الضغط عن البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.