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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>wsgiref.util.FileWrapper()‎‎</code> في بايثون}}</noinclude> صنف تغليف wrapper تحوّل كائنًا ش...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الصنف <code>wsgiref.util.FileWrapper()‎‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الصنف <code>wsgiref.util.FileWrapper()‎‎</code> في بايثون}}</noinclude>


صنف تغليف wrapper تحوّل كائنًا شبيهًا بالملف file-like object إلى مكرّر. تدعم الكائنات الناتجة التكرار استخدام التابعين ‎__getitem__()‎ و ‎__iter__()‎ وذلك للتوافق مع الإصدار 2.1 من بايثون ومع Jython.
صنف تغليف wrapper تحوّل كائنًا شبيهًا بالملف file-like object إلى مكرّر. تدعم الكائنات الناتجة التكرار استخدام التابعين ‎<code>__getitem__()</code>‎ و <code>‎__iter__()‎</code> وذلك للتوافق مع الإصدار 2.1 من بايثون ومع Jython.


== البنية العامة ==
== البنية العامة ==
سطر 8: سطر 8:
wsgiref.util.FileWrapper(filelike, blksize=8192)
wsgiref.util.FileWrapper(filelike, blksize=8192)
</syntaxhighlight>
</syntaxhighlight>
== المعاملات ==
== المعاملات ==


=== <code>‎blksize</code> ===
=== <code>‎blksize</code> ===


المعامل الاختياري يُمُرّر بصورة متكررة في كلّ مرة يجري فيها المرور على الكائن، إلى التابع read()‎ في الكائن الشبيه بالملف المعطى وذلك للحصول على سلاسل بايتات نصية.
المعامل الاختياري يُمُرّر بصورة متكررة في كلّ مرة يجري فيها المرور على الكائن، إلى التابع <code>read()‎</code> في الكائن الشبيه بالملف المعطى وذلك للحصول على سلاسل بايتات نصية.


إذا أعاد التابع read()‎ سلسلة بايتات نصية فارغة، تتوقّف عملية التعاود تمامًا.
إذا أعاد التابع <code>read()‎</code> سلسلة بايتات نصية فارغة، تتوقّف عملية التعاود تمامًا.


إن كان الكائن الشبيه بالملفات المعطى يمتلك التابع close()‎ فإنّ الكائن المعاد سيمتلك هذا التابع أيضًا، ويؤدي استدعاؤه في الكائن إلى المعاد إلى استدعائه في الكائن الشبيه بالملفات.
إن كان الكائن الشبيه بالملفات المعطى يمتلك التابع <code>close()‎</code> فإنّ الكائن المعاد سيمتلك هذا التابع أيضًا، ويؤدي استدعاؤه في الكائن إلى المعاد إلى استدعائه في الكائن الشبيه بالملفات.


== أمثلة ==
== أمثلة ==
سطر 27: سطر 26:
from wsgiref.util import FileWrapper
from wsgiref.util import FileWrapper


# We're using a StringIO-buffer for as the file-like object
filelike = StringIO("This is an example file-like object"*10)
filelike = StringIO("This is an example file-like object"*10)
wrapper = FileWrapper(filelike, blksize=5)
wrapper = FileWrapper(filelike, blksize=5)

مراجعة 21:23، 26 ديسمبر 2018


صنف تغليف wrapper تحوّل كائنًا شبيهًا بالملف file-like object إلى مكرّر. تدعم الكائنات الناتجة التكرار استخدام التابعين ‎__getitem__()‎ و ‎__iter__()‎ وذلك للتوافق مع الإصدار 2.1 من بايثون ومع Jython.

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

wsgiref.util.FileWrapper(filelike, blksize=8192)

المعاملات

‎blksize

المعامل الاختياري يُمُرّر بصورة متكررة في كلّ مرة يجري فيها المرور على الكائن، إلى التابع read()‎ في الكائن الشبيه بالملف المعطى وذلك للحصول على سلاسل بايتات نصية.

إذا أعاد التابع read()‎ سلسلة بايتات نصية فارغة، تتوقّف عملية التعاود تمامًا.

إن كان الكائن الشبيه بالملفات المعطى يمتلك التابع close()‎ فإنّ الكائن المعاد سيمتلك هذا التابع أيضًا، ويؤدي استدعاؤه في الكائن إلى المعاد إلى استدعائه في الكائن الشبيه بالملفات.

أمثلة

يبين المثال التالي طريقة استخدام الصنف:

from io import StringIO
from wsgiref.util import FileWrapper

filelike = StringIO("This is an example file-like object"*10)
wrapper = FileWrapper(filelike, blksize=5)

for chunk in wrapper:
    print(chunk)

مصادر