الفرق بين المراجعتين لصفحة: «Python/lzma/open»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>bz2.open()</code> في بايثون}}</noinclude> تفتح هذه الدالة ملفًّا مضغوطًا بخوارز...' |
لا ملخص تعديل |
||
سطر 12: | سطر 12: | ||
=== <code>filename</code> === | === <code>filename</code> === | ||
يمكن أن يكون اسم ملفٍّ موجود فعلًا (سلسلة نصية أو كائن bytes أو كائن شبيه بالمسار)، أو يمكن أن يكون كائن ملفٍّ موجود فعلًا يمكن القراءة منه والكتابة فيه. | يمكن أن يكون اسم ملفٍّ موجود فعلًا ([[Python/str|سلسلة نصية]] أو [[Python/bytes|كائن <code>bytes</code>]] أو كائن شبيه بالمسار)، أو يمكن أن يكون كائن ملفٍّ موجود فعلًا يمكن القراءة منه والكتابة فيه. | ||
=== <code>mode</code> === | === <code>mode</code> === | ||
سطر 18: | سطر 18: | ||
يمكن يأخذ المعامل <code>mode</code> إحدى القيم التالية: <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>mode</code> إحدى القيم التالية: <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>. | ||
عند فتح الملف للقراءة يؤدي المعاملان format و filters الوظيفة ذاتها في الدالة وفي كائن | عند فتح الملف للقراءة يؤدي المعاملان <code>format</code> و <code>filters</code> الوظيفة ذاتها في الدالة وفي كائن <code>LZMADecompressor</code>، ويجب عدم استخدام المعاملين <code>check</code> و <code>preset</code> عند استخدام الكائن. | ||
عند فتح المف للكتابة، تؤدي المعاملات | عند فتح المف للكتابة، تؤدي المعاملات <code>format</code>، <code>check</code>، <code>preset</code>، <code>filters</code> الوظيفة ذاتها في كائن <code>LZMACompressor</code>. | ||
تكافئ هذه الدالة -في النمط الثنائي- الدالة البانية للصنف LZMAFile: | تكافئ هذه الدالة -في النمط الثنائي- الدالة البانية للصنف LZMAFile:<syntaxhighlight lang="python3"> | ||
LZMAFile(filename, mode, ...) | LZMAFile(filename, mode, ...) | ||
وفي هذه الحالة يجب عدم تزويد الدالة بالمعاملات encoding و errors و newline. | </syntaxhighlight>وفي هذه الحالة يجب عدم تزويد الدالة بالمعاملات <code>encoding</code> و <code>errors</code> و <code>newline</code>. | ||
أما في النمط النصي، فيجري إنشاء الكائن LZMAFile وتغليفه بنسخة من الصنف io.TextIOWrapper مع المعاملات المحدّدة للترميز، والتعامل مع الأخطاء ونهايات الأسطر. | أما في النمط النصي، فيجري إنشاء الكائن <code>LZMAFile</code> وتغليفه بنسخة من الصنف <code>io.TextIOWrapper</code> مع المعاملات المحدّدة للترميز، والتعامل مع الأخطاء ونهايات الأسطر. | ||
ملاحظات: | '''ملاحظات:''' | ||
* أضيف دعم الأوضاع 'x' و 'xb' و 'xt' في الإصدار 3.4 من بايثون. | * أضيف دعم الأوضاع <code>'x'</code> و <code>'xb'</code> و <code>'xt'</code> في الإصدار 3.4 من بايثون. | ||
* أصبح بالإمكان استخدام الكائنات الشبيهة بالمسارات path-like objects في الإصدار 3.6 من بايثون. | * أصبح بالإمكان استخدام الكائنات الشبيهة بالمسارات path-like objects في الإصدار 3.6 من بايثون. | ||
المراجعة الحالية بتاريخ 13:43، 10 نوفمبر 2018
تفتح هذه الدالة ملفًّا مضغوطًا بخوارزمية 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)