الصنف bz2.BZ2File()
في بايثون
تفتح الدالة البانية لهذا الصنف ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي.
البنية العامة
bz2.BZ2File(filename, mode='r', buffering=None, compresslevel=9)
المعاملات
filename
إن كانت قيمة المعامل filename
سلسلة نصية أو كائن bytes
، فإنّ الدالة تفتح الملفّ المسمّى مباشرة، وإلا فيجب أن تكون قيمة المعامل filename
كائن ملفٍّ يُستخدم لقراءة البيانات المضغوطة أو كتابتها.
mode
يمكن أن يأخذ المعامل mode
القيمة 'r'
للقراءة (وهي القيمة الافتراضية) أو 'w'
لإعادة الكتابة، أو 'x'
للإنشاء الخاص exclusive creation، أو 'a'
لإلحاق البيانات. ويمكن تقديم هذه القيم بالصورة التالية 'rb'
، 'wb'
، 'xb'
، 'ab'
.
إن كانت قيمة filename
هي كائن ملف (بدلًا من اسم ملف) فإنّ استخدام القيمة 'w'
لا يؤدي إلى تقطيع الملف من جانبيه truncate، بل تكون العملية مكافئة للنمط 'a'
.
buffering
المعامل buffering
مهمل، وتتجاهله الدالة عند أداء عملها.
compresslevel
إن كان النمط المستخدم هو 'w'
أو 'a'
فيمكن للمعامل compresslevel
أن يكون رقمًا يتدرّج بين 1
و 9
ويحدّد مستوى عملية الضغط: الرقم 1
ينتج أقل مقدار من الضغط، والرقم 9
(القيمة الافتراضية) ينتج أعلى مقدار من الضغط.
إن كان النمط المستخدم هو 'r'
، فيمكن للملف المعطى أن يكون ناتجًا عن ربط مجموعة من البيانات المضغوطة.
توابع الصنف BZ2File
تقدّم كائنات BZ2File
التوابع التالية:
التابع peek([n])
يعيد التابع البيانات المخزنة في الذاكرة دون التحرّك في موقع الملف. يعيد التابع ما لا يقل عن بايت واحد من البيانات (إلا إذا وصل التابع إلى نهاية الملف)، ويكون عدد البياتات المعادة غير محدّد.
ملاحظات:
- أضيف دعم عبارات
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 من بايثون.