Seite 1 von 1

Auslesen von Dateien

Verfasst: Samstag 31. März 2012, 20:47
von swoosh
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)?

Re: Auslesen von Dateien

Verfasst: Samstag 31. März 2012, 21:03
von /me
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

Re: Auslesen von Dateien

Verfasst: Samstag 31. März 2012, 22:18
von BlackJack
@swoosh: XOR mit ``^`` funktioniert nur mit *Zahlen*. Es gibt keine dezimalen oder hexadezimalen Zahlen, sondern nur dezimale oder hexadezimale *Darstellungen* von Zahlen.

Re: Auslesen von Dateien

Verfasst: Sonntag 1. April 2012, 06:39
von snafu
@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'