الفرق بين المراجعتين ل"Python/zlib"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'تتطلب بعض التطبيقات استخدام البيانات المضغوطة، وتتيح الدوال المتوفّرة في هذه الوحدة إجراء ع...')
 
 
(3 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
تتطلب بعض التطبيقات استخدام البيانات المضغوطة، وتتيح الدوال المتوفّرة في هذه الوحدة إجراء عمليات الضغط وفك الضغط على البيانات باستخدام مكتبة zlib، ولهذه المكتبة موقع إلكتروني خاص. يجدر التنبيه إلى وجود بعض المشاكل في التوافقية بين وحدة بايثون والإصدارات 1.1.3 وما دونها من مكتبة zlib، إضافة إلى أنّ الإصدار 1.1.3 يعاني من مشاكل أمنية؛ لذا يُنصح باستخدام الإصدار 1.1.4 أو ما بعده من المكتبة.
+
<noinclude>{{DISPLAYTITLE:الوحدة <code>zlib‎</code> في بايثون}}</noinclude>
  
تقدّم دوال zlib الكثير من الخيارات وغالبًا ما يجب استخدام هذه الدوال في ترتيب معين. لا يسعى هذا التوثيق إلى المرور على جميع الاحتمالات؛ لذا يمكنك مراجعة دليل استخدام zlib للحصول على المعلومات المطلوبة.
+
تتطلب بعض التطبيقات استخدام البيانات المضغوطة، وتتيح الدوال المتوفّرة في هذه الوحدة إجراء عمليات الضغط وفك الضغط على البيانات باستخدام مكتبة <code>zlib</code>، ولهذه المكتبة [http://www.zlib.net/ موقع إلكتروني خاص]. يجدر التنبيه إلى وجود بعض المشاكل في التوافقية بين وحدة بايثون والإصدارات 1.1.3 وما دونها من مكتبة <code>zlib</code>، إضافة إلى أنّ الإصدار 1.1.3 يعاني من مشاكل أمنية؛ لذا يُنصح باستخدام الإصدار 1.1.4 أو ما بعده من المكتبة.
  
لقراءة ملفات ‎.gz والكتابة عليها راجع وحدة gzip.
+
تقدّم دوال <code>zlib</code> الكثير من الخيارات وغالبًا ما يجب استخدام هذه الدوال في ترتيب معين. لا يسعى هذا التوثيق إلى المرور على جميع الاحتمالات؛ لذا يمكنك مراجعة [http://www.zlib.net/manual.html دليل استخدام <code>zlib</code>] للحصول على المعلومات المطلوبة.
  
== استثناءات الوحدة zlib ==
+
لقراءة ملفات <code>‎.gz</code> والكتابة عليها راجع [[Python/gzip|وحدة <code>gzip</code>]].
 +
 
 +
== استثناءات الوحدة <code>zlib</code> ==
  
 
تقدّم الوحدة الاستثناءات التالية:
 
تقدّم الوحدة الاستثناءات التالية:
سطر 17: سطر 19:
 
تقدّم الوحدة الدوال التالية:
 
تقدّم الوحدة الدوال التالية:
  
=== الدالة <code>zlib.adler32()‎</code> ===
+
=== الدالة <code>[[Python/zlib/adler32|zlib.adler32()‎]]</code> ===
  
تحسب الدالة مجموع التحقق checksum من نوع Adler-32 للبيانات المعطاة.
+
تحسب الدالة مجموع التحقق <code>checksum</code> من نوع Adler-32 للبيانات المعطاة.
  
=== الدالة <code>zlib.compress()‎</code> ===
+
=== الدالة <code>[[Python/zlib/compress|zlib.compress()‎]]</code> ===
  
تضغط الدالة البايتات المعطاة، وتعيد كائن bytes يتضمّن البيانات المضغوطة.
+
تضغط الدالة البايتات المعطاة، وتعيد [[Python/bytes|كائن <code>bytes</code>]] يتضمّن البيانات المضغوطة.
  
=== الدالة <code>zlib.compressobj()‎</code> ===
+
=== الدالة <code>[[Python/zlib/compressobj|zlib.compressobj()‎]]</code> ===
  
 
تعيد الدالة كائن ضغط يمكن استخدامه لضغط البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.
 
تعيد الدالة كائن ضغط يمكن استخدامه لضغط البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.
  
=== الدالة <code>zlib.crc32()‎</code> ===
+
=== الدالة <code>[[Python/zlib/crc32|zlib.crc32()‎]]</code> ===
  
 
تحسب الدالة مجموع تحقق من نوع CRC (التحقّق من الزيادة الدورية Cyclic Redundancy Check) للبيانات المعطاة.
 
تحسب الدالة مجموع تحقق من نوع CRC (التحقّق من الزيادة الدورية Cyclic Redundancy Check) للبيانات المعطاة.
  
=== الدالة <code>zlib.decompress()‎</code> ===
+
=== الدالة <code>[[Python/zlib/decompress|zlib.decompress()‎]]</code> ===
  
تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد كائن bytes يحتوي على البيانات التي أزيل الضغط عنها.
+
تفكّ الدالة الضغط عن البايتات في البيانات المعطاة، وتعيد [[Python/bytes|كائن <code>bytes</code>]] يحتوي على البيانات التي أزيل الضغط عنها.
  
=== الدالة <code>zlib.decompressobj()‎</code> ===
+
=== الدالة <code>[[Python/zlib/decompressobj|zlib.decompressobj()‎]]</code> ===
  
 
تعيد الدالة كائن فك الضغط يمكن استخدامه لفك الضغط عن البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.
 
تعيد الدالة كائن فك الضغط يمكن استخدامه لفك الضغط عن البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.
سطر 43: سطر 45:
 
== كائنات الضغط Compress ==
 
== كائنات الضغط Compress ==
  
=== التابع <code>Compress.compress()‎</code> ===
+
=== التابع <code>[[Python/Compress/compress|Compress.compress()‎]]</code> ===
  
يضغط التابع البيانات المعطاة ويعيد كائن bytes يحتوي على البيانات المضغوطة لجزء من البيانات المعطاة على الأقل.
+
يضغط التابع البيانات المعطاة ويعيد [[Python/bytes|كائن <code>bytes</code>]] يحتوي على البيانات المضغوطة لجزء من البيانات المعطاة على الأقل.
  
=== التابع <code>Compress.flush()‎</code> ===
+
=== التابع <code>[[Python/Compress/flush|Compress.flush()‎]]</code> ===
  
يؤدي استدعاء هذا التابع إلى معالجة جميع المدخلات المعلّقة، ويعيد التابع كائن bytes يحتوي على المخرجات المضغوطة المتبقية.
+
يؤدي استدعاء هذا التابع إلى معالجة جميع المدخلات المعلّقة، ويعيد التابع [[Python/bytes|كائن <code>bytes</code>]] يحتوي على المخرجات المضغوطة المتبقية.
  
=== التابع <code>Compress.copy()‎</code> ===
+
=== التابع <code>[[Python/Compress/copy|Compress.copy()‎]]</code> ===
  
 
يعيد التابع نسخة من كائن الضغط.  
 
يعيد التابع نسخة من كائن الضغط.  
سطر 57: سطر 59:
 
== كائنات فك الضغط Decompress ==
 
== كائنات فك الضغط Decompress ==
  
تدعم كائنات فك الضغط التوابع والخصائص التالية:
+
تدعم كائنات فك الضغط الخصائص التالية:
  
 
=== الخاصية <code>Decompress.unused_data‎</code> ===
 
=== الخاصية <code>Decompress.unused_data‎</code> ===
  
كائن bytes يحتوي على البياتات التي تأتي بعد نهاية البيانات المضغوطة، بمعنى أنّ قيمة هذه الخاصية تبقى b""‎ إلى حين الوصول إلى آخر بايت يتضمّن بيانات مضغوطة. إن كانت سلسلة البايتات النصية تتضمّن بأكملها بيانات مضغوطة، فإنّ قيمة هذه الخاصية ستبقى b""‎، أي كائن bytes فارغ.
+
[[Python/bytes|كائن <code>bytes</code>]] يحتوي على البياتات التي تأتي بعد نهاية البيانات المضغوطة، بمعنى أنّ قيمة هذه الخاصية تبقى <code>b""‎</code> إلى حين الوصول إلى آخر بايت يتضمّن بيانات مضغوطة. إن كانت سلسلة البايتات النصية تتضمّن بأكملها بيانات مضغوطة، فإنّ قيمة هذه الخاصية ستبقى <code>b""‎</code>، أي [[Python/bytes|كائن <code>bytes</code>]] فارغ.
  
 
=== الخاصية <code>Decompress.unconsumed_tail‎</code> ===
 
=== الخاصية <code>Decompress.unconsumed_tail‎</code> ===
  
كائن bytes يتضمّن البيانات التي لم تُستهلك بواسطة آخر استدعاء للتابع decompress()‎ لأنّه يتجاوز الحدّ المسموح به لذاكرة البيانات المفكوكة الضغط. هذه البيانات غير مرئية بالنسبة إلى مكتبة zlib لذا يجب عليك تلقيمها (مع احتمال إلحاق المزيد من البيانات) إلى  استدعاء لاحق للتابع decompres()لتحصل على المخرجات الصحيحة.
+
[[Python/bytes|كائن <code>bytes</code>]] يتضمّن البيانات التي لم تُستهلك بواسطة آخر استدعاء للتابع <code>[[Python/Decompress/decompress|decompress()]]</code> لأنّه يتجاوز الحدّ المسموح به لذاكرة البيانات المفكوكة الضغط. هذه البيانات غير مرئية بالنسبة إلى مكتبة zlib لذا يجب عليك تلقيمها (مع احتمال إلحاق المزيد من البيانات) إلى  استدعاء لاحق للتابع <code>[[Python/Decompress/decompress|decompress()]]‎‎</code> لتحصل على المخرجات الصحيحة.
  
 
=== الخاصية <code>Decompress.eof</code> ===
 
=== الخاصية <code>Decompress.eof</code> ===
  
قيمة منطقية (بوليانية) تحدّد ما إذا تم الوصول إلى نهاية تدفّق البيانات المضغوطة.
+
[[Python/bool|قيمة منطقية (بوليانية)]] تحدّد ما إذا تم الوصول إلى نهاية تدفّق البيانات المضغوطة.
  
 
تتيح هذه الخاصية التمييز بين تدفّق البيانات المضغوط بصورة صحيحة، وبين تدفّق البيانات الناقص أو المقتطع.
 
تتيح هذه الخاصية التمييز بين تدفّق البيانات المضغوط بصورة صحيحة، وبين تدفّق البيانات الناقص أو المقتطع.
 +
 
'''ملاحظة:''' هذه الخاصية جديدة في الإصدار 3.3 من بايثون.
 
'''ملاحظة:''' هذه الخاصية جديدة في الإصدار 3.3 من بايثون.
  
=== التابع <code>Decompress.decompress()‎</code> ===
+
تدعم كائنات فك الضغط التوابع التالية:
 +
 
 +
=== التابع <code>[[Python/Decompress/decompress|Decompress.decompress()‎]]</code> ===
  
يفكّ التابع الضغط عن البيانات المعطاة، ويعيد كائن bytes يتضمّن البيانات مفكوكة الضغط والمرتبطة على الأقل بجزء من البيانات في السلسلة النصية string.
+
يفكّ التابع الضغط عن البيانات المعطاة، ويعيد [[Python/bytes|كائن <code>bytes</code>]] يتضمّن البيانات مفكوكة الضغط والمرتبطة على الأقل بجزء من البيانات في السلسلة النصية string.
  
=== التابع <code>Decompress.flush()‎</code> ===
+
=== التابع <code>[[Python/Decompress/flush|Decompress.flush()‎]]</code> ===
  
يؤدي استدعاء هذا التابع إلى معالجة جميع المدخلات المعلّقة، ويعيد كائن bytes يتضمّن ما تبقّى من مخرجات غير مضغوطة.  
+
يؤدي استدعاء هذا التابع إلى معالجة جميع المدخلات المعلّقة، ويعيد [[Python/bytes|كائن <code>bytes</code>]]<nowiki/>يتضمّن ما تبقّى من مخرجات غير مضغوطة.  
  
=== التابع <code>Decompress.copy()‎</code> ===
+
=== التابع <code>[[Python/Decompress/copy|Decompress.copy()‎]]</code> ===
  
 
يعيد التابع نسخة من كائن فك الضغط.
 
يعيد التابع نسخة من كائن فك الضغط.
سطر 88: سطر 93:
 
== ثوابت الوحدة zlib ==
 
== ثوابت الوحدة zlib ==
  
يمكن الحصول على معلومات حول الإصدار المستخدم من مكتبة zlib عن طريق الثوابت التالية:
+
يمكن الحصول على معلومات حول الإصدار المستخدم من مكتبة <code>zlib</code> عن طريق الثوابت التالية:
  
zlib.ZLIB_VERSION
+
=== الثابت <code>zlib.ZLIB_VERSION</code> ===
 +
سلسلة نصية تتضمّن إصدار مكتبة <code>zlib</code> المستخدم لبناء الوحدة. قد يختلف هذا الإصدار عن إصدار مكتبة <code>zlib</code> المستخدم في وقت التشغيل، والذي يمكن الحصول عليه بواسطة الثابت <code>ZLIB_RUNTIME_VERSION</code>.
  
السلسلة النصية لإصدار مكتبة zlib المستخدم لبناء الوحدة. قد يختلف هذا الإصدار عن إصدار مكتبة zlib المستخدم في وقت التشغيل، والذي يمكن الحصول عليه بواسطة الثابت ZLIB_RUNTIME_VERSION.
+
=== الثابت <code>zlib.ZLIB_RUNTIME_VERSION</code> ===
 +
سلسلة نصية تتضمن الإصدار الخاصّة بمكتبة <code>zlib</code> المحمّلة بواسطة مفسّر بايثون.
  
zlib.ZLIB_RUNTIME_VERSION
+
ملاحظة: هذا الثابت جديد في الإصدار 3.3 من اللغة.
  
سلسلة الإصدار الخاصّة بمكتبة zlib المحمّلة بواسطة مفسّر بايثون.
+
== انظر أيضًا ==
ملاحظة: هذا الثابت جديد في الإصدار 3.3 من اللغة.
+
* [[Python/gzip|وحدة <code>gzip</code> في بايثون.]]
  
 
== مصادر ==
 
== مصادر ==
  
 
* [https://docs.python.org/3/library/zlib.html صفحة Compression compatible with gzip في توثيق بايثون الرسمي.]
 
* [https://docs.python.org/3/library/zlib.html صفحة Compression compatible with gzip في توثيق بايثون الرسمي.]
 
  
 
[[تصنيف:Python]]
 
[[تصنيف:Python]]
 
[[تصنيف:Python Modules]]
 
[[تصنيف:Python Modules]]

المراجعة الحالية بتاريخ 15:29، 21 أكتوبر 2018


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

تقدّم دوال zlib الكثير من الخيارات وغالبًا ما يجب استخدام هذه الدوال في ترتيب معين. لا يسعى هذا التوثيق إلى المرور على جميع الاحتمالات؛ لذا يمكنك مراجعة دليل استخدام zlib للحصول على المعلومات المطلوبة.

لقراءة ملفات ‎.gz والكتابة عليها راجع وحدة gzip.

استثناءات الوحدة zlib

تقدّم الوحدة الاستثناءات التالية:

الاستثناء zlib.error

يُطلق هذا الاستثناء عند حدوث أخطاء عند ضغط البيانات وفك ضغطها.

دوال الوحدة zlib

تقدّم الوحدة الدوال التالية:

الدالة zlib.adler32()‎

تحسب الدالة مجموع التحقق checksum من نوع Adler-32 للبيانات المعطاة.

الدالة zlib.compress()‎

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

الدالة zlib.compressobj()‎

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

الدالة zlib.crc32()‎

تحسب الدالة مجموع تحقق من نوع CRC (التحقّق من الزيادة الدورية Cyclic Redundancy Check) للبيانات المعطاة.

الدالة zlib.decompress()‎

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

الدالة zlib.decompressobj()‎

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

كائنات الضغط Compress

التابع Compress.compress()‎

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

التابع Compress.flush()‎

يؤدي استدعاء هذا التابع إلى معالجة جميع المدخلات المعلّقة، ويعيد التابع كائن bytes يحتوي على المخرجات المضغوطة المتبقية.

التابع Compress.copy()‎

يعيد التابع نسخة من كائن الضغط.

كائنات فك الضغط Decompress

تدعم كائنات فك الضغط الخصائص التالية:

الخاصية Decompress.unused_data‎

كائن bytes يحتوي على البياتات التي تأتي بعد نهاية البيانات المضغوطة، بمعنى أنّ قيمة هذه الخاصية تبقى b""‎ إلى حين الوصول إلى آخر بايت يتضمّن بيانات مضغوطة. إن كانت سلسلة البايتات النصية تتضمّن بأكملها بيانات مضغوطة، فإنّ قيمة هذه الخاصية ستبقى b""‎، أي كائن bytes فارغ.

الخاصية Decompress.unconsumed_tail‎

كائن bytes يتضمّن البيانات التي لم تُستهلك بواسطة آخر استدعاء للتابع decompress() لأنّه يتجاوز الحدّ المسموح به لذاكرة البيانات المفكوكة الضغط. هذه البيانات غير مرئية بالنسبة إلى مكتبة zlib لذا يجب عليك تلقيمها (مع احتمال إلحاق المزيد من البيانات) إلى استدعاء لاحق للتابع decompress()‎‎ لتحصل على المخرجات الصحيحة.

الخاصية Decompress.eof

قيمة منطقية (بوليانية) تحدّد ما إذا تم الوصول إلى نهاية تدفّق البيانات المضغوطة.

تتيح هذه الخاصية التمييز بين تدفّق البيانات المضغوط بصورة صحيحة، وبين تدفّق البيانات الناقص أو المقتطع.

ملاحظة: هذه الخاصية جديدة في الإصدار 3.3 من بايثون.

تدعم كائنات فك الضغط التوابع التالية:

التابع Decompress.decompress()‎

يفكّ التابع الضغط عن البيانات المعطاة، ويعيد كائن bytes يتضمّن البيانات مفكوكة الضغط والمرتبطة على الأقل بجزء من البيانات في السلسلة النصية string.

التابع Decompress.flush()‎

يؤدي استدعاء هذا التابع إلى معالجة جميع المدخلات المعلّقة، ويعيد كائن bytesيتضمّن ما تبقّى من مخرجات غير مضغوطة.

التابع Decompress.copy()‎

يعيد التابع نسخة من كائن فك الضغط.

ثوابت الوحدة zlib

يمكن الحصول على معلومات حول الإصدار المستخدم من مكتبة zlib عن طريق الثوابت التالية:

الثابت zlib.ZLIB_VERSION

سلسلة نصية تتضمّن إصدار مكتبة zlib المستخدم لبناء الوحدة. قد يختلف هذا الإصدار عن إصدار مكتبة zlib المستخدم في وقت التشغيل، والذي يمكن الحصول عليه بواسطة الثابت ZLIB_RUNTIME_VERSION.

الثابت zlib.ZLIB_RUNTIME_VERSION

سلسلة نصية تتضمن الإصدار الخاصّة بمكتبة zlib المحمّلة بواسطة مفسّر بايثون.

ملاحظة: هذا الثابت جديد في الإصدار 3.3 من اللغة.

انظر أيضًا

مصادر