الوحدة bz2
في بايثون
تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2.
تتضمّن وحدة bz2
ما يلي:
- دالة
open()
وصنفBZ2File
لقراءة الملفات المضغوطة والكتابة فيها. - صنفا
BZ2Compressor
وBZ2Decompressor
لإجراء عمليات الضغط وفك الضغط التزايدي incremental. - دالتا
compress()
وdecompress()
لإجراء عمليات الضغط وفك الضغط بخطوة واحدة.
يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة.
ضغط البيانات وفكّ الضغط عنها
الدالة bz.open()
تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط الثنائي أو النصي، وتعيد كائن ملف، وهي دالة بانية للصنف BZ2File
.
الصنف BZ2File
يستخدم هذا الصنف لقراءة الملفات المضغوطة والكتابة فيها.
يقدّم الصنف 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 من بايثون.
عمليات الضغط وفك الضغط التزايدية Incremental
الصنف BZ2Compressor
تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً.
الصنف BZ2Decompressor
تنشئ هذه الدالة البانية كائن decompressor الذي يمكن استخدامه لفك الضغط عن البيانات تزايديًا.
عمليات الضغط وفك الضغط التي تجري دفعة واحدة One-shot
الدالة bz2.compress()
تضغط الدالة البيانات المعطاة.
الدالة bz2.decompress()
تفكّ الدالة الضغط عن البيانات المعطاة.