كيف تقرأ الملفات الثنائية في بايثون

How Read Binary Files Python



يسمى الملف الذي يحتوي على البيانات الثنائية بالملف الثنائي. يتم تخزين أي بيانات ثنائية منسقة أو غير منسقة في ملف ثنائي ، وهذا الملف غير قابل للقراءة ويستخدمه الكمبيوتر مباشرة. عندما يكون الملف الثنائي مطلوبًا للقراءة أو النقل من موقع إلى موقع آخر ، يتم تحويل محتوى الملف أو ترميزه إلى تنسيق يمكن قراءته. امتداد الملف الثنائي هو .bin. يمكن قراءة محتوى الملف الثنائي باستخدام وظيفة أو وحدة نمطية مضمنة. تم عرض طرق مختلفة لقراءة الملفات الثنائية في Python في هذا البرنامج التعليمي.

المتطلبات المسبقة:

قبل التحقق من أمثلة هذا البرنامج التعليمي ، من الأفضل إنشاء ملف ثنائي واحد أو أكثر لاستخدامه في مثال البرنامج النصي. تم تقديم البرنامج النصي لملفي Python أدناه لإنشاء ملفين ثنائيين. سيقوم binary1.py بإنشاء ملف ثنائي يسمى سلسلة التي ستحتوي على بيانات سلسلة ، وسيقوم ملف binary2.py بإنشاء ملف ثنائي باسم number_list.bin التي ستحتوي على قائمة بالبيانات الرقمية.







ثنائي 1.py

# افتح معالج ملف لإنشاء ملف ثنائي

معالج الملفات= افتح('string.bin'و 'wb')

# أضف سطرين من النص في الملف الثنائي

معالج الملفات.اكتب(بمرحبًا بك في LinuxHint.نتعلم برمجة بايثون.)

# أغلق معالج الملف

معالج الملفات.أغلق()

ثنائي 2.py

# افتح معالج ملف لإنشاء ملف ثنائي

ملف=افتح('number_list.bin'و'wb')

# قم بتعريف قائمة القيم الرقمية

أعداد=[10و30وأربعة خمسةو60و70و85و99]

# تحويل القائمة إلى مجموعة

باراي=bytearray(أعداد)

# اكتب مجموعة في الملف

ملف.اكتب(باراي)

ملف.أغلق()

مثال 1: اقرأ الملف الثنائي لبيانات السلسلة في صفيف البايت

توجد طرق عديدة في Python لقراءة الملف الثنائي. يمكنك قراءة عدد معين من وحدات البايت أو المحتوى الكامل للملف الثنائي في كل مرة. قم بإنشاء ملف بيثون بالنص التالي. ال وظيفة () مفتوحة يستخدم لفتح سلسلة للقراءة. ال قراءة () وظيفة تم استخدامه لقراءة 7 أحرف من الملف في كل تكرار من while loop and print. بعد ذلك ، ملف قراءة () وظيفة تم استخدامه دون أي وسيطة لقراءة المحتوى الكامل للملف الثنائي الذي سيتم طباعته لاحقًا.



# افتح الملف الثنائي للقراءة

معالج الملفات= افتح('string.bin'و 'rb')

# اقرأ أول ثلاث بايتات من الملف الثنائي

بايت_البيانات=معالج الملفات.اقرأ(7)

مطبعة('طباعة ثلاثة أحرف في كل تكرار:')

# كرر الحلقة لقراءة الجزء المتبقي من الملف

في حينبايت_البيانات:

مطبعة(بايت_البيانات)

بايت_البيانات=معالج الملفات.اقرأ(7)


# اقرأ الملف بأكمله كسلسلة بايت واحدة

مع افتح('string.bin'و 'rb') كماfh:

المحتوى=fh.اقرأ()

مطبعة('طباعة المحتوى الكامل للملف الثنائي:')

مطبعة(المحتوى)

انتاج:

سيظهر الإخراج التالي بعد تنفيذ البرنامج النصي أعلاه.







مثال 2: اقرأ الملف الثنائي لبيانات السلسلة في المصفوفة

قم بإنشاء ملف python باستخدام البرنامج النصي التالي لقراءة ملف ثنائي باسم number_list.bin تم إنشاؤها مسبقًا. يحتوي هذا الملف الثنائي على قائمة بالبيانات الرقمية. مثل المثال السابق ، فإن ملف وظيفة () مفتوحة استخدم فتح الملف الثنائي للقراءة في البرنامج النصي. بعد ذلك ، ستتم قراءة أول 5 أرقام من الملف الثنائي وتحويلها إلى قائمة قبل الطباعة.

# افتح الملف الثنائي للقراءة

ملف = افتح('number_list.bin'و 'rb')

# اقرأ الأرقام الخمسة الأولى في قائمة

عدد= قائمة(ملف.اقرأ(5))

# اطبع القائمة

مطبعة(عدد)

# أغلق الملف

ملف.أغلق()

انتاج:

سيظهر الإخراج التالي بعد تنفيذ البرنامج النصي أعلاه. يحتوي الملف الثنائي على 7 أرقام ، وقد تمت طباعة أول خمسة أرقام في الإخراج.



مثال 3: قراءة ملف ثنائي باستخدام NumPy

طرق إنشاء الملف الثنائي باستخدام امتداد مجموعة NumPy وقراءة محتوى الملف الثنائي باستخدام في قائمة باستخدام وحدة NumPy أظهرت في هذا الجزء من البرنامج التعليمي. قبل التحقق من البرنامج النصي الموضح أدناه ، يجب عليك تثبيت ملف وحدة NumPy عن طريق تنفيذ الأمر من الجهاز أو تثبيت حزمة NumPy في محرر Python ، حيث سيتم تنفيذ البرنامج النصي. ال ملف () وظيفة يستخدم لإنشاء ملف نصي أو ثنائي ، و دالة fromfile () يستخدم لإنشاء مصفوفة بقراءة نص أو ملف ثنائي.

تركيب الملف ():

ndarray.إلى ملف(ملفوسبتمبر='وصيغة='٪س')

الوسيطة الأولى إلزامية وتتخذ اسم الملف أو السلسلة أو المسار كقيمة. سيتم إنشاء الملف إذا تم توفير اسم ملف في هذه الوسيطة. الوسيطة الثانية اختيارية تُستخدم لفصل عناصر المصفوفة. الوسيطة الثالثة اختيارية أيضًا وتُستخدم لتنسيق إخراج الملف النصي.

بناء جملة fomfile ():

حبيبي.من - الملف(ملفوdtype=تطفووعدد=-1وسبتمبر='وعوض=0و*ومثل=لا أحد)

الوسيطة الأولى إلزامية وتتخذ اسم الملف أو السلسلة أو المسار كقيمة. سيتم قراءة محتوى الملف إذا تم توفير اسم الملف في هذه الوسيطة. ال dtype يحدد نوع البيانات للمصفوفة التي تم إرجاعها. يتم استخدام العد لحساب عدد العناصر. الغرض من سبتمبر هو فصل النص أو عناصر المجموعة. يتم استخدام الإزاحة لتحديد الوضع الحالي للملف. يتم استخدام الوسيطة الأخيرة لإنشاء كائن مصفوفة ليس ملف مجموعة NumPy .

قم بإنشاء ملف python باستخدام البرنامج النصي التالي لإنشاء ملف ثنائي باستخدام مجموعة NumPy وقراءة وطباعة محتوى الملف الثنائي.

# استيراد وحدة NumPy

يستوردحبيبيكماعلى سبيل المثال

# إعلان مجموعة numpy

nparray=على سبيل المثالمجموعة مصفوفة([3. 4و 89و 30و أربعة خمسةو 90و أحد عشر])

# إنشاء ملف ثنائي من مجموعة numpy

nparray.إلى ملف('list.bin')

# طباعة البيانات من الملف الثنائي

مطبعة(على سبيل المثالمن - الملف('list.bin'وdtype=على سبيل المثالint64))

انتاج:

سيظهر الإخراج التالي بعد تنفيذ البرنامج النصي أعلاه.

استنتاج:

تم عرض ثلاث طرق مختلفة لقراءة الملف الثنائي في هذا البرنامج التعليمي باستخدام أمثلة بسيطة. أرجع المثال الأول محتوى الملف الثنائي كمصفوفة بايت. أرجع المثال الثاني محتوى الملف الثنائي كقائمة. أرجع المثال الأخير أيضًا محتوى الملف الثنائي كقائمة.