الصنف 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 : يستخدم هذا الصنف ملفًّا يكتب فيه تدفق البيانات المسلسلة.

مصادر