الدالة bz2.open()‎ في بايثون

من موسوعة حسوب
< Python‏ | lzma


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

البنية العامة

lzma.open(filename, mode="rb", *, format=None, check=-1, preset=None, filters=None, encoding=None, errors=None, newline=None)

المعاملات

filename

يمكن أن يكون اسم ملفٍّ موجود فعلًا (سلسلة نصية أو كائن bytes أو كائن شبيه بالمسار)، أو يمكن أن يكون كائن ملفٍّ موجود فعلًا يمكن القراءة منه والكتابة فيه.

mode

يمكن يأخذ المعامل mode إحدى القيم التالية: ‎'r'، 'rb'، 'w'، 'wb'، 'x'، 'xb'، 'a'، 'ab'‎ للنمط الثنائي، والقيم ‎'rt'، 'wt'، 'xt'، 'at'‎ للنمط النصي، والقيمة الافتراضية لهذا المعامل هي 'rb'.

عند فتح الملف للقراءة يؤدي المعاملان format و filters الوظيفة ذاتها في الدالة وفي كائن LZMADecompressor، ويجب عدم استخدام المعاملين check و preset عند استخدام الكائن.

عند فتح المف للكتابة، تؤدي المعاملات format، check، preset، filters الوظيفة ذاتها في كائن LZMACompressor.

تكافئ هذه الدالة -في النمط الثنائي- الدالة البانية للصنف LZMAFile:

LZMAFile(filename, mode, ...)

وفي هذه الحالة يجب عدم تزويد الدالة بالمعاملات encoding و errors و newline.

أما في النمط النصي، فيجري إنشاء الكائن LZMAFile وتغليفه بنسخة من الصنف io.TextIOWrapper مع المعاملات المحدّدة للترميز، والتعامل مع الأخطاء ونهايات الأسطر.

ملاحظات:

  • أضيف دعم الأوضاع 'x' و 'xb' و 'xt' في الإصدار 3.4 من بايثون.
  • أصبح بالإمكان استخدام الكائنات الشبيهة بالمسارات path-like objects في الإصدار 3.6 من بايثون.

القيمة المعادة

تعيد الدالة كائن ملف.

أمثلة

يبين المثال التالي طريقة قراءة ملف مضغوط:

import lzma
with lzma.open("file.xz") as f:
    file_content = f.read()

يبين المثال التالي طريقة إنشاء ملف مضغوط:

import lzma
data = b"Insert Data Here"
with lzma.open("file.xz", "w") as f:
    f.write(data)

مصادر