Mostafa mahmoud3 نشر 21 أغسطس 2021 أرسل تقرير نشر 21 أغسطس 2021 قراءة من ملف وعمل لوب كل مرة تقرأ 8 بايت وإخراج الناتج مثل هذا 11111110101001010101110011101010010101010100110010101010101001 1 اقتباس
0 Ali Haidar Ahmad نشر 21 أغسطس 2021 أرسل تقرير نشر 21 أغسطس 2021 (معدل) ######################### إنشاء ملف ثنائي ############ # إنشاء ملف ثنائي # w تشير إلى وضع الكتابة # b تشير إلى ملف ثنائي f=open("binfile.bin","wb") # تعريف مصفوفة num=[5, 10, 15, 20, 25] # تحويلها لصيغة ثنائية arr=bytearray(num) # كتابتها في ملف f.write(arr) f.close() ######################### قراءته ############## import pathlib s="" for byte in pathlib.Path("binfile.bin").read_bytes(): # decimal ستقرأ البايت وتحوله ل s+="{0:b}".format(byte) # s نحوله لثنائي مرة أخرى ونضيف ماقرأناه ل print(s) # 101101011111010011001 حيث أن pathlib تسمح لنا بالمرور على الملف بايت بايت. تم التعديل في 21 أغسطس 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
0 Mostafa mahmoud3 نشر 21 أغسطس 2021 الكاتب أرسل تقرير نشر 21 أغسطس 2021 بتاريخ 40 دقائق مضت قال Ali Haidar Ahmad: ######################### إنشاء ملف ثنائي ############ # إنشاء ملف ثنائي # w تشير إلى وضع الكتابة # b تشير إلى ملف ثنائي f=open("binfile.bin","wb") # تعريف مصفوفة num=[5, 10, 15, 20, 25] # تحويلها لصيغة ثنائية arr=bytearray(num) # كتابتها في ملف f.write(arr) f.close() ######################### قراءته ############## import pathlib s="" for byte in pathlib.Path("binfile.bin").read_bytes(): # decimal ستقرأ البايت وتحوله ل s+="{0:b}".format(byte) # s نحوله لثنائي مرة أخرى ونضيف ماقرأناه ل print(s) # 101101011111010011001 حيث أن pathlib تسمح لنا بالمرور على الملف بايت بايت. بتاريخ 40 دقائق مضت قال Ali Haidar Ahmad: ######################### إنشاء ملف ثنائي ############ # إنشاء ملف ثنائي # w تشير إلى وضع الكتابة # b تشير إلى ملف ثنائي f=open("binfile.bin","wb") # تعريف مصفوفة num=[5, 10, 15, 20, 25] # تحويلها لصيغة ثنائية arr=bytearray(num) # كتابتها في ملف f.write(arr) f.close() ######################### قراءته ############## import pathlib s="" for byte in pathlib.Path("binfile.bin").read_bytes(): # decimal ستقرأ البايت وتحوله ل s+="{0:b}".format(byte) # s نحوله لثنائي مرة أخرى ونضيف ماقرأناه ل print(s) # 101101011111010011001 حيث أن pathlib تسمح لنا بالمرور على الملف بايت بايت. شكراً أخي الكريم على اجابتك لكن انا اريد اضعة في while وان يقرأ 8 بايت كل مرة اقتباس
0 Ali Haidar Ahmad نشر 21 أغسطس 2021 أرسل تقرير نشر 21 أغسطس 2021 بتاريخ 22 دقائق مضت قال Mostafa mahmoud3: شكراً أخي الكريم على اجابتك لكن انا اريد اضعة في while وان يقرأ 8 بايت كل مرة وما الغاية من وضعه ضمن while؟؟؟! اقتباس
0 Ali Haidar Ahmad نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 3 ساعات قال Mostafa mahmoud3: شكراً أخي الكريم على اجابتك لكن انا اريد اضعة في while وان يقرأ 8 بايت كل مرة عذراً لم أنتبه أنك تريد قراءة 8 بايتات ظننتها بتات، في هذه الحالة يمكنك القيام بذلك كالتالي: f=open("binfile.bin","wb") # تعريف مصفوفة num=[5,10,15,20,25,3,4,1,6] # تحويلها لصيغة ثنائية arr=bytearray(num) # كتابتها في ملف f.write(arr) f.close() ########################################################### with open("binfile.bin", "rb") as f: bytes = f.read(8) while bytes: s='' for i in list(bytes): s+="{0:b}".format(i) print(s) bytes = f.read(8) f.close() """ 101101011111010011001111001 110 """ اقتباس
0 Mostafa mahmoud3 نشر 22 أغسطس 2021 الكاتب أرسل تقرير نشر 22 أغسطس 2021 (معدل) بتاريخ 9 ساعات قال Ali Haidar Ahmad: عذراً لم أنتبه أنك تريد قراءة 8 بايتات ظننتها بتات، في هذه الحالة يمكنك القيام بذلك كالتالي: f=open("binfile.bin","wb") # تعريف مصفوفة num=[5,10,15,20,25,3,4,1,6] # تحويلها لصيغة ثنائية arr=bytearray(num) # كتابتها في ملف f.write(arr) f.close() ########################################################### with open("binfile.bin", "rb") as f: bytes = f.read(8) while bytes: s='' for i in list(bytes): s+="{0:b}".format(i) print(s) bytes = f.read(8) f.close() """ 101101011111010011001111001 110 """ شكرا اخي الكريم وبارك الله فيك الكود يعمل تمام ولكن هناك مشكلة هو انه يقوم بحذف الأصفار من بداية كل byte يعني لو أردنا أن نعيد كتابة هذة البيانات في ملف اخر لن نحصل على نفس الملف انا اريد ان ارجع نفس الخطوات إلي الوراء لاصنع ملف اخر مشابة للملف الاول واسف على الإطالة تم التعديل في 22 أغسطس 2021 بواسطة Mostafa mahmoud3 اقتباس
السؤال
Mostafa mahmoud3
قراءة من ملف وعمل لوب كل مرة تقرأ 8 بايت وإخراج الناتج مثل هذا
11111110101001010101110011101010010101010100110010101010101001
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.