بيثون - كيفية تحرير بايت ملف سداسي عشري بواسطة بايت

StackOverflow https://stackoverflow.com/questions/1322508

  •  19-09-2019
  •  | 
  •  

سؤال

أريد أن أكون قادرا على فتح ملف صورة و byte-byte-byte من القيم السداسية عشرية إضافية. ليس لدي أي فكرة عن كيفية القيام بذلك و googling "تحرير بايتون بايت" و "مجموعة بايت بايت" لم يأت بأي شيء، من المستغرب. هل يمكن لشخص ما أن يشيرني نحو المكتبة التي أحتاج إلى استخدامها أو أساليب محددة يمكنني جوجل أو دروس / أدلة؟

هل كانت مفيدة؟

المحلول

تحتوي مكتبة Python القياسية على وحدة MMAP، والتي يمكن استخدامها للقيام بذلك بالضبط. إلقاء نظرة على وثائق لمزيد من المعلومات.

نصائح أخرى

اعتمادا على ما تريد القيام به قد يكون كافيا افتح الملف في الوضع الثنائي وقراءة البيانات مع العادي ملف المهام:

# load it
with open("somefile", 'rb') as f:
    data = f.read()

# do something with data
data.reverse()

# save it
with open("somefile.new", 'wb') as f:
    f.write(data)

بيثون لا يهتم حقا إذا data تحتوي السلسلة على بيانات "ثنائية" أو "نص". إذا كنت ترغب فقط في إجراء تعديلات بسيطة على ملف من حجم معقول، فمن المحتمل أن يكون ذلك جيدا بما فيه الكفاية.

إطار Hachoir هو مجموعة من مكتبة وأدوات Python لتحليل الملفات الثنائية وتحريرها:

http://pypi.python.org/pypi/hachoir-core.

لديها معرفة لأنواع الملفات المشتركة، لذلك هذا يمكن أن يكون فقط ما تحتاجه.

تفحص ال معتمدة وحدة.

تنفذ هذه الوحدة التحويلات بين قيم الثعبان والهيكل C ممثلة كسلاسل بيثون. يستخدم سلاسل التنسيق (موضح أدناه) كواجص مدمجة للوضع من الهياكل C والتحويل المقصود من / من قيم بيثون. يمكن استخدام هذا في التعامل مع البيانات الثنائية المخزنة في الملفات أو من اتصالات الشبكة، من بين مصادر أخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top