• 0

كيف أقرأ الأعداد الصحيحة من ملفات بيناري في بايثون؟

أريد قراءة ملف من نوع BMP في بايثون، فأنا أعرف أن أول 2 بايت يشيران إلى BMP firm وأما البيتات الأربعة اللاحقة فهي تشير إلى حجم الملف.
جربت الحصول على هذه المعلومات من الملف لكنني أحصل على رسائل خطأ كثيرة، فما الطريقة الصحيحة لفعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يبدو أنك استخدمت تابع read وهذا التابع يرجع لك مجموعة من البايتات كسلسلة نصية، ولتحويل هذه السلسلة إلى بيانات نظام الثنائي (binary data) يمكنك استخدام دالة unpack من وحدة struct كما في هذا المثال:

import struct
 
size = struct.unpack('i', fin.read(4))

لاحظ أن Unpack تُرجع دائما tuple لذلك يمكنك استخدام struct.unpack('i', fin.read(4))[0] للحصول على قيمة العدد الصحيح التي تبحث عنها.

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن