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

من موسوعة حسوب
< Python‏ | zlib
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>zlib.compress()‎</code> في بايثون}}</noinclude> تعيد الدالة كائن ضغط يمكن استخدامه...'
 
لا ملخص تعديل
سطر 17: سطر 17:
=== <code>method</code> ===
=== <code>method</code> ===


خوارزمية الضغط التي تستخدمها الدالة. يدعم هذا المعامل في الوقت الحاضر قيمة واحدة فقط هي DEFLATED.
خوارزمية الضغط التي تستخدمها الدالة. يدعم هذا المعامل في الوقت الحاضر قيمة واحدة فقط هي <code>DEFLATED</code>.


=== <code>wbits</code> ===
=== <code>wbits</code> ===


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


يأخذ هذا المعامل مديات مختلفة من القيم، ويأخذ القيمة الافتراضية 15 (MAX_WBITS):
يأخذ هذا المعامل مديات مختلفة من القيم، ويأخذ القيمة الافتراضية <code>15</code> (<code>MAX_WBITS</code>):


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


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


‎+25 إلى ‎+31 = ‏16 + (9 إلى 15)
<code>‎+25</code> إلى <code>‎+31</code> = ‏<code>16 +</code> (<code>9</code> إلى <code>15</code>)


تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، وتضيف إلى المخرجات ترويسة وتذييل gzip الأساسيتين.
تستخدم الدالة أدنى <code>4</code> بتات من القيمة كلوغاريتم لحجم النافذة، وتضيف إلى المخرجات ترويسة وتذييل <code>gzip</code> الأساسيتين.


=== <code>memLevel</code> ===
=== <code>memLevel</code> ===


يتحكّم المعامل بمقدار الذاكرة المستخدم لحالة الضغط الداخلية. تتدرج قيم هذا المعامل بين 1 و حيث تستخدم القيم العالية المزيد من الذاكرة ولكنّها تكون ذات سرعة أعلى وتعطي مخرجات ذات حجم أصغر.
يتحكّم المعامل بمقدار الذاكرة المستخدم لحالة الضغط الداخلية. تتدرج قيم هذا المعامل بين <code>1</code> و <code>9</code>، حيث تستخدم القيم العالية المزيد من الذاكرة ولكنّها تكون ذات سرعة أعلى وتعطي مخرجات ذات حجم أصغر.


=== <code>strategy</code> ===
=== <code>strategy</code> ===


يستخدم المعامل strategy لضبط خوارزمية الضغط. يأخذ المعامل إحدى القيم التالية: Z_DEFAULT_STRATEGY، Z_FILTERED، Z_HUFFMAN_ONLY، Z_RLE (في الإصدار 1.2.0.1 من مكتبة zlib) والقيمة Z_FIXED (في الإصدار 1.2.2.2 من مكتبة zlib).
يستخدم المعامل <code>strategy</code> لضبط خوارزمية الضغط. يأخذ المعامل إحدى القيم التالية: <code>Z_DEFAULT_STRATEGY</code>، <code>Z_FILTERED</code>، <code>Z_HUFFMAN_ONLY</code>، <code>Z_RLE</code> (في الإصدار 1.2.0.1 من مكتبة <code>zlib</code>) والقيمة <code>Z_FIXED</code> (في الإصدار 1.2.2.2 من مكتبة <code>zlib</code>).


=== <code>zdict</code> ===
=== <code>zdict</code> ===


هو قاموس ضغط معرّف مسبقًا، وهو عبارة عن تسلسل من البايتات (كأن يكون كائن بايتات) يتضمّن تسلسلات فرعية يُتوقّع أن تظهر بصورة دورية في البيانات المراد ضغطها. يجب أن تكون التسلسلات الفرعية التي يُتوقّع أن تكون الأكثر ظهورًا في نهاية القاموس.
هو [[Python/dict|قاموس]] ضغط معرّف مسبقًا، وهو عبارة عن تسلسل من البايتات (كأن يكون كائن بايتات) يتضمّن تسلسلات فرعية يُتوقّع أن تظهر بصورة دورية في البيانات المراد ضغطها. يجب أن تكون التسلسلات الفرعية التي يُتوقّع أن تكون الأكثر ظهورًا في نهاية القاموس.


ملاحظة: أضيف المعامل zdict في الإصدار 3.3 من اللغة وأصبح بالإمكان استخدام المعاملات المفتاحية.
'''ملاحظة''': أضيف المعامل <code>zdict</code> في الإصدار 3.3 من اللغة وأصبح بالإمكان استخدام [[Python/arguments|المعاملات المفتاحية]].


== القيمة المعادة ==
== القيمة المعادة ==
سطر 57: سطر 57:
== انظر أيضًا ==
== انظر أيضًا ==


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


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

مراجعة 17:14، 7 نوفمبر 2018


تعيد الدالة كائن ضغط يمكن استخدامه لضغط البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.

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

zlib.compressobj(level=-1, method=DEFLATED, wbits=MAX_WBITS, memLevel=DEF_MEM_LEVEL, strategy=Z_DEFAULT_STRATEGY[, zdict])

‎المعاملات

level

المعامل level هو عدد صحيح ضمن النطاق 0 إلى 9 أو ‎-1 ووظيفته هي التحكم في مستوى عملية الضغط، فالقيمة 1 تقابل المستوى(Z_BEST_SPEED) وهو الأسرع ويعطي أقل مقدار من الضغط، والقيمة 9تقابل المستوى(Z_BEST_COMPRESSION) وهو الأبطأ وينتج أكبر مقدار من الضغط. أما القيمة 0 فتقابل المستوى (Z_NO_COMPRESSION) فتعني عدم ضغط البيانات. القيمة الافتراضية لهذا المعامل هي ‎-1 وتقابل ‎(Z_DEFAULT_COMPRESSION)‎ وتقدّم هذه القيمة حالة من التوازن بين السرعة ومقدار الضغط (تكافئ هذه القيمة المستوى 6 في الوقت الحاضر).

method

خوارزمية الضغط التي تستخدمها الدالة. يدعم هذا المعامل في الوقت الحاضر قيمة واحدة فقط هي DEFLATED.

wbits

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

يأخذ هذا المعامل مديات مختلفة من القيم، ويأخذ القيمة الافتراضية 15 (MAX_WBITS):

‎+9 إلى ‎+15: لوغاريتم ذو الأساس 2 لحجم النافذة، والذي يتدرّج تبعًا لذلك بين 512 و 32768. تنتج القيم الأكبر عمليات ضغط أفضل على حساب استهلاك مقدار أكبر من الذاكرة. وستتضمّن المخرجات الناتجة ترويسة وتذييلًا خاصّين بمكتبة zlib.

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

‎+25 إلى ‎+31 = ‏16 + (9 إلى 15)

تستخدم الدالة أدنى 4 بتات من القيمة كلوغاريتم لحجم النافذة، وتضيف إلى المخرجات ترويسة وتذييل gzip الأساسيتين.

memLevel

يتحكّم المعامل بمقدار الذاكرة المستخدم لحالة الضغط الداخلية. تتدرج قيم هذا المعامل بين 1 و 9، حيث تستخدم القيم العالية المزيد من الذاكرة ولكنّها تكون ذات سرعة أعلى وتعطي مخرجات ذات حجم أصغر.

strategy

يستخدم المعامل strategy لضبط خوارزمية الضغط. يأخذ المعامل إحدى القيم التالية: Z_DEFAULT_STRATEGY، Z_FILTERED، Z_HUFFMAN_ONLY، Z_RLE (في الإصدار 1.2.0.1 من مكتبة zlib) والقيمة Z_FIXED (في الإصدار 1.2.2.2 من مكتبة zlib).

zdict

هو قاموس ضغط معرّف مسبقًا، وهو عبارة عن تسلسل من البايتات (كأن يكون كائن بايتات) يتضمّن تسلسلات فرعية يُتوقّع أن تظهر بصورة دورية في البيانات المراد ضغطها. يجب أن تكون التسلسلات الفرعية التي يُتوقّع أن تكون الأكثر ظهورًا في نهاية القاموس.

ملاحظة: أضيف المعامل zdict في الإصدار 3.3 من اللغة وأصبح بالإمكان استخدام المعاملات المفتاحية.

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

تعيد الدالة كائن bytes يتضمّن البيانات المضغوطة.

تطلق الدالة استثناءً في حال حدوث أيّ خطأ خلال عملية الضغط.

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

انظر أيضًا

  • الدالة zlib.compress()‎: تضغط الدالة البايتات المعطاة، وتعيد كائن bytes يتضمّن البيانات المضغوطة..

مصادر