Auslesen von Dateien

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
swoosh
User
Beiträge: 1
Registriert: Samstag 31. März 2012, 20:31

Eigentlich ist die Frage trivial, ich finde aber nirgendwo ein "Rezept":
Ich möchte beliebige Dateien byteweise auslesen mit Python (2.x).
Der Sinn dahinter ist, dass ich die Bytes via XOR verschlüsseln und in einer
neuen Datei abspeichern will.
Wie gesagt, dazu habe ich nichts gefunden.
Hat jemand einen Tipp, evtl. auch zum XOR zwischen zwei Hex-Bytes? (XOR mit ^ funktioniert nur dezimal)?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

swoosh hat geschrieben:Eigentlich ist die Frage trivial, ich finde aber nirgendwo ein "Rezept":
Ich möchte beliebige Dateien byteweise auslesen mit Python (2.x).
http://docs.python.org/library/stdtypes.html#file.read
BlackJack

@swoosh: XOR mit ``^`` funktioniert nur mit *Zahlen*. Es gibt keine dezimalen oder hexadezimalen Zahlen, sondern nur dezimale oder hexadezimale *Darstellungen* von Zahlen.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@swoosh: Für das Umwandeln von Bytes in "Zahlwerte" eignet sich ord(). Auf diese Ausgabe kannst du dann natürlich immer noch eine XOR-Operation mit einem hexadezimal angegebenen Wert durchführen lassen:

Code: Alles auswählen

>>> ord('a') ^ 0xF00
3937
Und für's Schreiben in die Datei, was ja vermutlich auch wieder in hexadezimaler Schreibweise geschehen soll, kannst du dir am Besten mittels String-Formatting behelfen:

Code: Alles auswählen

>>> '{:X}'.format(ord('a') ^ 0xF00)
'F61'
Antworten