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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الوحدة <code>bz2()‎</code> في بايثون}}</noinclude> تقدّم هذه الوحدة واجهة متكاملة لضغط البي...'
 
 
(7 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الوحدة <code>bz2()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الوحدة <code>bz2</code> في بايثون}}</noinclude>


تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2.
تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2.


تتضمّن وحدة bz2 ما يلي:
تتضمّن وحدة <code>bz2</code> ما يلي:
* دالة open()‎ وصنف BZ2File لقراءة الملفات المضغوطة والكتابة فيها.
* دالة <code>[[Python/bz2/open|open()‎]]</code> وصنف [[Python/BZ2File|<code>BZ2File</code>]] لقراءة الملفات المضغوطة والكتابة فيها.
* صنفا BZ2Compressor و BZ2Decompressor لإجراء عمليات الضغط وفك الضغط التزايدي incremental.
* صنفا [[Python/BZ2Compressor|<code>BZ2Compressor</code>]] و [[Python/BZ2Decompressor|<code>BZ2Decompressor</code>]] لإجراء عمليات الضغط وفك الضغط التزايدي incremental.
* دالتا compress()‎ و decompress()‎ لإجراء عمليات الضغط وفك الضغط بخطوة واحدة.
* دالتا <code>[[Python/bz2/compress|compress()‎]]</code> و <code>[[Python/bz2/decompress|decompress()]]</code> لإجراء عمليات الضغط وفك الضغط بخطوة واحدة.


يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة.
يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة.


== البنية العامة ==
== ضغط البيانات وفكّ الضغط عنها ==


<syntaxhighlight lang="python3">
=== الدالة <code>[[Python/bz2/open|bz2.open()‎]]</code> ===
bz2.open(filename, mode='r', compresslevel=9, encoding=None, errors=None, newline=None)
تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف [[Python/BZ2File|<code>BZ2File</code>]].
</syntaxhighlight>


تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف BZ2File.
== ‎الصنف <code>[[Python/BZ2File|BZ2File]]</code> ==


== ‎المعاملات ==
يستخدم هذا الصنف لقراءة الملفات المضغوطة والكتابة فيها.


=== <code>filename</code> ===
يقدّم الصنف [[Python/BZ2File|<code>BZ2File</code>]] جميع التوابع المقدّمة من الصنف <code>[[Python/io/BufferedIOBase|io.BufferedIOBase]]</code> باستثناء التابعين <code>detach()</code>‎ و <code>truncate()</code>‎، ويدعم الصنف [[Python/BZ2File|<code>BZ2File</code>]] التكرار iteration وعبارات <code>with</code>.


يمكن لهذا املعامل أن يكون اسم ملف (سلسلة نصية أو كائن bytes)، أو كائن ملفّ تجري القراءة منه والكتابة فيه.
== عمليات الضغط وفك الضغط التزايدية Incremental ==


=== <code>mode</code> ===
=== الصنف <code>[[Python/BZ2Compressor|BZ2Compressor]]</code> ===
تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً.


يمكن يأخذ المعامل mode إحدى القيم التالية: ‎'r'، 'rb'، 'w'، 'wb'، 'x'، 'xb'، 'a'، 'ab'‎ للنمط الثنائي، والقيم 'rt'، 'wt'، 'xt'، 'at' للنمط النصي، والقيمة الافتراضية لهذا المعامل هي 'rb'.
=== الصنف <code>[[Python/BZ2Decompressor|BZ2Decompressor]]</code> ===
تنشئ هذه الدالة البانية كائن decompressor الذي يمكن استخدامه لفك الضغط عن البيانات تزايديًا.


=== <code>compresslevel</code> ===
== عمليات الضغط وفك الضغط التي تجري دفعة واحدة One-shot ==


عدد صحيح يتدرج من 1 إلى 9 ويؤدي نفس الوظيفة التي يؤديها في الدالة البانية للصنف BZ2File.
=== الدالة <code>[[Python/bz2/compress|bz2.compress()‎]]</code> ===
تضغط الدالة البيانات المعطاة.


تكافئ هذه الدالة في الوضع الثنائي الدالة البانية للصنف BZ2File:
=== الدالة <code>[[Python/bz2/decompress|bz2.decompress()‎]]</code> ===
تفكّ الدالة الضغط عن البيانات المعطاة.


<syntaxhighlight lang="python3">
== انظر أيضًا ==
BZ2File(filename, mode, compresslevel=compresslevel)
* [[Python/lzma|الوحدة <code>lzma</code>]]: تقدّم هذه الوحدة مجموعة من الأصناف والدوال المساعدة لإجراء عمليات ضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط LZMA.
</syntaxhighlight>
* [[Python/gzip|الوحدة <code>gzip</code>]]: تقدّم هذه الوحدة واجهة بسيطة لضغط الملفات وفك ضغطها بنفس الأسلوب المتّبع في برنامجي gzip و gunzip في GNU.
 
وفي هذه الحالة يجب عدم تمرير قيم للمعاملات encoding و errors و newline.
 
أما في الوضع النصي يجري إنشاء كائن BZ2File وتغليفه بنسخة من الصنف io.TextIOWrapper مع القيم المحددة للترميز والتعامل مع الأخطاء ونهايات الأسطر.
 
== القيمة المعادة ==
 
تعيد الدالة كائن فك الضغط يمكن استخدامه لفك الضغط عن البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة.


== مصادر ==
== مصادر ==

المراجعة الحالية بتاريخ 13:21، 10 نوفمبر 2018


تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2.

تتضمّن وحدة bz2 ما يلي:

  • دالة open()‎ وصنف BZ2File لقراءة الملفات المضغوطة والكتابة فيها.
  • صنفا BZ2Compressor و BZ2Decompressor لإجراء عمليات الضغط وفك الضغط التزايدي incremental.
  • دالتا compress()‎ و decompress() لإجراء عمليات الضغط وفك الضغط بخطوة واحدة.

يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة.

ضغط البيانات وفكّ الضغط عنها

الدالة bz2.open()‎

تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف BZ2File.

‎الصنف BZ2File

يستخدم هذا الصنف لقراءة الملفات المضغوطة والكتابة فيها.

يقدّم الصنف BZ2File جميع التوابع المقدّمة من الصنف io.BufferedIOBase باستثناء التابعين detach()‎ و truncate()‎، ويدعم الصنف BZ2File التكرار iteration وعبارات with.

عمليات الضغط وفك الضغط التزايدية Incremental

الصنف BZ2Compressor

تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً.

الصنف BZ2Decompressor

تنشئ هذه الدالة البانية كائن decompressor الذي يمكن استخدامه لفك الضغط عن البيانات تزايديًا.

عمليات الضغط وفك الضغط التي تجري دفعة واحدة One-shot

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

تضغط الدالة البيانات المعطاة.

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

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

انظر أيضًا

  • الوحدة lzma: تقدّم هذه الوحدة مجموعة من الأصناف والدوال المساعدة لإجراء عمليات ضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط LZMA.
  • الوحدة gzip: تقدّم هذه الوحدة واجهة بسيطة لضغط الملفات وفك ضغطها بنفس الأسلوب المتّبع في برنامجي gzip و gunzip في GNU.

مصادر