الصنف pickle.Unpickler()
في بايثون
يستخدم هذا الصنف ملفًّا ثنائيًا يقرأ منه تدفق البيانات المسلسلة.
يجري الكشف عن رقم البروتوكول المستخدم تلقائيًا؛ لذا لا حاجة لأي معامل لتحديده.
البنية العامة
class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict")
المعاملات
file
يجب أن يمتلك المعامل file
تابعين، الأول هو تابع read()
والذي يأخذ معاملًا عدديًا، وتابع readline()
والذي لا يحتاج إلى أيّ معاملات. يجب أن يعيد كلا المعاملين كائنات bytes
، ولهذا يمكن أن يكون file
كائن ملف مخزّنًا على القرص الصلب ومفتوحًا للقراءة الثنائية، أو كائن io.BytesIO
أو أي كائن آخر يطابق هذه الشروط.
fix_imports
إن أخذ هذا المعامل القيمة True
وكانت قيمة المعامل protocol
أقل من 3
، فإنّ وحدة pickle
ستحاول ربط الأسماء الجديدة في الإصدار 3 من بايثون بأسماء الوحدات القديمة المستخدمة في الإصدار 2 من بايثون، بحيث يكون تدفق البيانات مقروءًا في الإصدار 2 من بايثون.
المعاملان encoding
و errors
يُعلم المعاملان encoding
و errors
وحدة pickle
عن كيفية فك ترميز نسخ السلاسل النصية 8-bit والمُسَلسَلة في الإصدار الثاني من بايثون. يأخذ هذا المعاملان القيمتين الافتراضيتين 'ASCII'
و 'strict'
على التوالي. ويمكن أن يأخذ المعامل encoding
القيمة 'bytes'
وذلك لقراءة نسخ السلاسل النصية 8-bit ككائنات bytes
.
تستخدم المعاملات الاختيارية fix_imports
وencoding
و errors
في التحكم بدعم التوافق لتدفق السلسلة الناتج من الإصدار الثاني من بايثون.
توابع الصنف Unpickler
التابع load()
يقرأ التابع تمثيل كائن مسلسل من كائن الملف المفتوح في الدالة البانية للصنف، ويعيد هيكل الكائن المعاد بناؤه والموصوف في هذا الملف.
التابع persistent_load()
يطلق هذا التابع افتراضيًا الاستثناء UnpicklingError
.
التابع find_class()
يستورد التابع الوحدة المعطاة إذا اقتضت الحاجة ويعيد الكائن الذي يحمل الاسم المحدّد.
انظر أيضًا
- الصنف
Pickler
: يستخدم هذا الصنف ملفًّا يكتب فيه تدفق البيانات المسلسلة.