2016-06-20 12 views
-3

Dies sollte einfach sein!So ersetzen Sie erste und letzte 4 Bytes in Binärdatei in Python

Ich habe eine Binärdatei. und ich muss die ersten 4 Bytes aus der Datei lesen und den Wert dort ersetzen. zum Beispiel: wenn die ersten 4 Bytes 00000000 sind, möchte ich sie durch 11111111 ersetzen.

Auch muss ich die letzten 4 Bytes der Datei lesen und den Wert dort ersetzen. Bitte beachten Sie, dass die Dateigröße nicht geändert werden sollte. Ersetzen Sie nur Bits, die wir brauchen.

+2

uns Zeigen Sie, was Sie bereits versucht. Was hat nicht funktioniert? –

+0

Falls mein neuer Wert "7631231B" ist und ich möchte es in den letzten 4 Bytes schreiben, wie können wir das machen? –

Antwort

0

sollte dieser Code in Python arbeiten 2.7:

with open(filepath, 'r+b') as f: 
    data = f.read(4) 
    f.seek(0) 
    if len(somestring) != 4: 
     raise ValueError 
    f.write(somestring) 
    f.seek(os.path.getsize(filepath)-4) 
    enddata = f.read(4) 
    f.seek(os.path.getsize(filepath)-4) 
    if len(endstring) != 4: 
     raise ValueError 
    f.write(endstring) 
+0

mein Schlechter, sollte die Strings ohne Zitate schreiben, sorry – IsaacDj

+0

Wie stellen wir sicher, dass f.write (somestring) die "alten" 4 Bytes Daten genau ersetzt? - Ich meine, die ersten 4 Bytes nur zu überlappen –

+0

Jetzt überprüft es, dass es 4 Zeichen ist – IsaacDj