الفرق بين المراجعتين لصفحة: «Python/bz2»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الوحدة <code>bz2()</code> في بايثون}}</noinclude> تقدّم هذه الوحدة واجهة متكاملة لضغط البي...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2. | تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2. | ||
تتضمّن وحدة bz2 ما يلي: | تتضمّن وحدة <code>bz2</code> ما يلي: | ||
* دالة open() وصنف BZ2File لقراءة الملفات المضغوطة والكتابة فيها. | * دالة <code>open()</code> وصنف <code>BZ2File</code> لقراءة الملفات المضغوطة والكتابة فيها. | ||
* صنفا BZ2Compressor و BZ2Decompressor لإجراء عمليات الضغط وفك الضغط التزايدي incremental. | * صنفا <code>BZ2Compressor</code> و <code>BZ2Decompressor</code> لإجراء عمليات الضغط وفك الضغط التزايدي incremental. | ||
* دالتا compress() و decompress() لإجراء عمليات الضغط وفك الضغط بخطوة واحدة. | * دالتا <code>compress()</code> و <code>decompress</code>() لإجراء عمليات الضغط وفك الضغط بخطوة واحدة. | ||
يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة. | يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة. | ||
سطر 16: | سطر 16: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف BZ2File. | تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف <code>BZ2File</code>. | ||
== المعاملات == | == المعاملات == | ||
سطر 22: | سطر 22: | ||
=== <code>filename</code> === | === <code>filename</code> === | ||
يمكن لهذا املعامل أن يكون اسم ملف (سلسلة نصية أو كائن bytes)، أو كائن ملفّ تجري القراءة منه والكتابة فيه. | يمكن لهذا املعامل أن يكون اسم ملف ([[Python/str|سلسلة نصية]] أو [[Python/bytes|كائن <code>bytes</code>]])، أو كائن ملفّ تجري القراءة منه والكتابة فيه. | ||
=== <code>mode</code> === | === <code>mode</code> === | ||
يأخذ المعامل mode إحدى القيم التالية: <code>'r'</code>، <code>'rb'</code>، <code>'w'</code>، <code>'wb'</code>، <code>'x'</code>، <code>'xb'</code>، <code>'a'</code>، <code>'ab'</code> للنمط الثنائي، والقيم <code>'rt'</code>، <code>'wt'</code>، <code>'xt'</code>، <code>'at'</code> للنمط النصي، والقيمة الافتراضية لهذا المعامل هي <code>'rb'</code>. | |||
=== <code>compresslevel</code> === | === <code>compresslevel</code> === | ||
عدد صحيح يتدرج من 1 إلى 9 ويؤدي نفس الوظيفة التي يؤديها في الدالة البانية للصنف BZ2File. | عدد صحيح يتدرج من <code>1</code> إلى <code>9</code> ويؤدي نفس الوظيفة التي يؤديها في الدالة البانية للصنف <code>BZ2File</code>. | ||
تكافئ هذه الدالة في الوضع الثنائي الدالة البانية للصنف BZ2File: | تكافئ هذه الدالة في الوضع الثنائي الدالة البانية للصنف <code>BZ2File</code>: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
سطر 38: | سطر 38: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
وفي هذه الحالة يجب عدم تمرير قيم للمعاملات encoding و errors و newline. | وفي هذه الحالة يجب عدم تمرير قيم للمعاملات <code>encoding</code> و <code>errors</code> و <code>newline</code>. | ||
أما في الوضع النصي يجري إنشاء كائن BZ2File وتغليفه بنسخة من الصنف io.TextIOWrapper مع القيم المحددة للترميز والتعامل مع الأخطاء ونهايات الأسطر. | أما في الوضع النصي يجري إنشاء كائن <code>BZ2File</code> وتغليفه بنسخة من الصنف <code>io.TextIOWrapper</code> مع القيم المحددة للترميز والتعامل مع الأخطاء ونهايات الأسطر. | ||
'''ملاحظات:''' | |||
* هذه الدالة جديدة في الإصدار 3.3. | |||
* أضيف النمط <code>'x'</code> (الإنشاء الخاص exclusive creation) في الإصدار 3.4 من بايثون. | |||
* تستقبل الدالة الكائنات الشبيهة بالمسارات في الإصدار 3.6 من بايثون. | |||
== الصنف BZ2File == | |||
تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي. | |||
يقدّم الصنف <code>BZ2File</code> جميع التوابع المقدّمة من الصنف <code>io.BufferedIOBase</code> باستثناء التابعين <code>detach()</code> و <code>truncate()</code>، ويدعم الصنف <code>BZ2File</code> التكرار iteration وعبارات <code>with</code>. | |||
تقدّم كائنات <code>BZ2File</code> كذلك التوابع التالية: | |||
=== التابع <code>peek()</code>: === | |||
يعيد التابع البيانات المخزنة في الذاكرة دون التحرّك في موقع الملف. | |||
'''ملاحظات''' | |||
<nowiki>*</nowiki> صحيح أن استدعاء التابع <code>peek()</code> لا يؤدي إلى تغيير موقع الملف في كائن <code>BZ2File</code>، إلا أنّه قد يغيّر الموقع في كائن الملف الداخلي (مثال: عند بناء الصنف <code>BZ2File</code> عن طريق تمرير كائن ملف كقيمة للمعامل <code>filename</code>). يظهر هذا السلوك في الإصدار 3.3 من بايثون. | |||
<nowiki>*</nowiki> أضيف دعم عبارات <code>with</code> في الإصدار 3.1 من بايثون. | |||
<nowiki>*</nowiki> أضيفت التوابع <code>fileno()</code> و <code>readable()</code> و <code>seekable()</code> و <code>writable()</code> و <code>read1()</code> و <code>readinto()</code> في الإصدار 3.3 من بايثون. | |||
<nowiki>*</nowiki> أصبح بالإمكان في الإصدار 3.3 من بايثون استخدام كائن ملف كقيمة للمعامل <code>filename</code> عوضًا عن اسم ملف حقيقي. | |||
<nowiki>*</nowiki> أضيف النمط <code>'a'</code> (الإلحاق append) إلى جانب إضافة دعم قراءة الملفات ذات التدفقات المتعددة في الإصدار 3.3 من بايثون. | |||
<nowiki>*</nowiki> أضيف النمط <code>'x'</code> (الإنشاء الخاص exclusive creation) في الإصدار 3.4 من بايثون. | |||
<nowiki>*</nowiki> في الإصدار 3.5 من بايثون أصبح التابع <code>read()</code> يستقبل معاملًا يأخذ القيمة <code>None</code>. | |||
<nowiki>*</nowiki> أصبح بالإمكان تمرير كائن شبيه بالملفات إلى الدالة البانية في الإصدار 3.6 من بايثون. | |||
== عمليات الضغط وفك الضغط التزايدية == | |||
=== الصنف <code>BZ2Compressor</code> === | |||
تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً. | |||
=== الصنف <code>BZ2Decompressor</code> === | |||
تنشئ هذه الدالة البانية كائن decompressor الذي يمكن استخدامه لفك الضغط عن البيانات تزايديًا. | |||
== عمليات الضغط وفك الضغط التي تجري دفعة واحدة == | |||
=== الدالة <code>bz2.compress()</code> === | |||
تضغط الدالة البيانات المعطاة. | |||
=== الدالة <code>bz2.decompress()</code> === | |||
تفكّ الدالة الضغط عن البيانات المعطاة. | |||
== مصادر == | == مصادر == |
مراجعة 18:40، 9 نوفمبر 2018
تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2.
تتضمّن وحدة bz2
ما يلي:
- دالة
open()
وصنفBZ2File
لقراءة الملفات المضغوطة والكتابة فيها. - صنفا
BZ2Compressor
وBZ2Decompressor
لإجراء عمليات الضغط وفك الضغط التزايدي incremental. - دالتا
compress()
وdecompress
() لإجراء عمليات الضغط وفك الضغط بخطوة واحدة.
يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة.
البنية العامة
bz2.open(filename, mode='r', compresslevel=9, encoding=None, errors=None, newline=None)
تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف BZ2File
.
المعاملات
filename
يمكن لهذا املعامل أن يكون اسم ملف (سلسلة نصية أو كائن bytes
)، أو كائن ملفّ تجري القراءة منه والكتابة فيه.
mode
يأخذ المعامل mode إحدى القيم التالية: 'r'
، 'rb'
، 'w'
، 'wb'
، 'x'
، 'xb'
، 'a'
، 'ab'
للنمط الثنائي، والقيم 'rt'
، 'wt'
، 'xt'
، 'at'
للنمط النصي، والقيمة الافتراضية لهذا المعامل هي 'rb'
.
compresslevel
عدد صحيح يتدرج من 1
إلى 9
ويؤدي نفس الوظيفة التي يؤديها في الدالة البانية للصنف BZ2File
.
تكافئ هذه الدالة في الوضع الثنائي الدالة البانية للصنف BZ2File
:
BZ2File(filename, mode, compresslevel=compresslevel)
وفي هذه الحالة يجب عدم تمرير قيم للمعاملات encoding
و errors
و newline
.
أما في الوضع النصي يجري إنشاء كائن BZ2File
وتغليفه بنسخة من الصنف io.TextIOWrapper
مع القيم المحددة للترميز والتعامل مع الأخطاء ونهايات الأسطر.
ملاحظات:
- هذه الدالة جديدة في الإصدار 3.3.
- أضيف النمط
'x'
(الإنشاء الخاص exclusive creation) في الإصدار 3.4 من بايثون.
- تستقبل الدالة الكائنات الشبيهة بالمسارات في الإصدار 3.6 من بايثون.
الصنف BZ2File
تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي.
يقدّم الصنف BZ2File
جميع التوابع المقدّمة من الصنف io.BufferedIOBase
باستثناء التابعين detach()
و truncate()
، ويدعم الصنف BZ2File
التكرار iteration وعبارات with
.
تقدّم كائنات BZ2File
كذلك التوابع التالية:
التابع peek()
:
يعيد التابع البيانات المخزنة في الذاكرة دون التحرّك في موقع الملف.
ملاحظات
* صحيح أن استدعاء التابع peek()
لا يؤدي إلى تغيير موقع الملف في كائن BZ2File
، إلا أنّه قد يغيّر الموقع في كائن الملف الداخلي (مثال: عند بناء الصنف BZ2File
عن طريق تمرير كائن ملف كقيمة للمعامل filename
). يظهر هذا السلوك في الإصدار 3.3 من بايثون.
* أضيف دعم عبارات with
في الإصدار 3.1 من بايثون.
* أضيفت التوابع fileno()
و readable()
و seekable()
و writable()
و read1()
و readinto()
في الإصدار 3.3 من بايثون.
* أصبح بالإمكان في الإصدار 3.3 من بايثون استخدام كائن ملف كقيمة للمعامل filename
عوضًا عن اسم ملف حقيقي.
* أضيف النمط 'a'
(الإلحاق append) إلى جانب إضافة دعم قراءة الملفات ذات التدفقات المتعددة في الإصدار 3.3 من بايثون.
* أضيف النمط 'x'
(الإنشاء الخاص exclusive creation) في الإصدار 3.4 من بايثون.
* في الإصدار 3.5 من بايثون أصبح التابع read()
يستقبل معاملًا يأخذ القيمة None
.
* أصبح بالإمكان تمرير كائن شبيه بالملفات إلى الدالة البانية في الإصدار 3.6 من بايثون.
عمليات الضغط وفك الضغط التزايدية
الصنف BZ2Compressor
تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً.
الصنف BZ2Decompressor
تنشئ هذه الدالة البانية كائن decompressor الذي يمكن استخدامه لفك الضغط عن البيانات تزايديًا.
عمليات الضغط وفك الضغط التي تجري دفعة واحدة
الدالة bz2.compress()
تضغط الدالة البيانات المعطاة.
الدالة bz2.decompress()
تفكّ الدالة الضغط عن البيانات المعطاة.