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

من موسوعة حسوب
سطر 30: سطر 30:
تقدّم كائنات <code>BZ2File</code> التوابع التالية:
تقدّم كائنات <code>BZ2File</code> التوابع التالية:


=== التابع <code>[[Python/BZ2File/peek|peek()‎]]</code> ===
=== التابع <code>[[Python/BZ2File/peek|peek([n])‎]]</code> ===


يعيد التابع البيانات المخزنة في الذاكرة دون التحرّك في موقع الملف.  
يعيد التابع البيانات المخزنة في الذاكرة دون التحرّك في موقع الملف. يعيد التابع ما لا يقل عن بايت واحد من البيانات (إلا إذا وصل التابع إلى نهاية الملف)، ويكون عدد البياتات المعادة غير محدّد.
 
'''ملاحظات''':
 
* صحيح أن استدعاء التابع [https://wiki.hsoub.com/Python/BZ2File/peek <code>peek()‎</code>]‎ لا يؤدي إلى تغيير موقع الملف في كائن [https://wiki.hsoub.com/Python/BZ2File <code>BZ2File</code>]، إلا أنّه قد يغيّر الموقع في كائن الملف الداخلي (مثال: عند بناء الصنف [https://wiki.hsoub.com/Python/BZ2File <code>BZ2File</code>] عن طريق تمرير كائن ملف كقيمة للمعامل <code>filename</code>). يظهر هذا السلوك في الإصدار 3.3 من بايثون.
* أضيف دعم عبارات <code>with</code> في الإصدار 3.1 من بايثون.
* أضيفت التوابع <code>fileno()‎</code> و <code>readable()</code>‎ و <code>seekable()</code>‎ و <code>writable()</code>‎ و <code>read1()</code>‎ و <code>readinto()</code>‎ في الإصدار 3.3 من بايثون.
* أصبح بالإمكان في الإصدار 3.3 من بايثون استخدام كائن ملف كقيمة للمعامل <code>filename</code> عوضًا عن اسم ملف حقيقي.
* أضيف النمط <code>'a'</code> (الإلحاق append) إلى جانب إضافة دعم قراءة الملفات ذات التدفقات المتعددة في الإصدار 3.3 من بايثون.
* أضيف النمط <code>'x'</code> (الإنشاء الخاص exclusive creation) في الإصدار 3.4 من بايثون.
* في الإصدار 3.5 من بايثون أصبح التابع <code>read()</code>‎ يستقبل معاملًا يأخذ القيمة <code>None</code>.
* أصبح بالإمكان تمرير كائن شبيه بالملفات إلى الدالة البانية في الإصدار 3.6 من بايثون.  


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

مراجعة 20:02، 9 نوفمبر 2018


تفتح الدالة البانية لهذا الصنف ملفًّا مضغوطًا بخوارزمية 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])‎

يعيد التابع البيانات المخزنة في الذاكرة دون التحرّك في موقع الملف. يعيد التابع ما لا يقل عن بايت واحد من البيانات (إلا إذا وصل التابع إلى نهاية الملف)، ويكون عدد البياتات المعادة غير محدّد.

ملاحظات:

  • صحيح أن استدعاء التابع 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 من بايثون.

مصادر