qweet hat geschrieben:ich habe eine 1mb große Datei und würde diese gern byte-weise auslesen.
wie stell ich das an?
gibt bei mir sowas in der Art aus:
'"\xb24\xb8\xdc\...\...\'
Damit bekommst Du eine Zeichenkette mit dem gesamten Inhalt der Datei. Mit '\x??' werden Bytes angezeigt, die sich nicht als ASCII anzeigen lassen. Anstelle der beiden Fragezeichen steht eine zweistellige Hexadezimalzahl, die den Wert des Bytes angibt.
Bei Dateien mit nur einem Megabyte kannst Du normalerweise unbesorgt die ganze Datei in den Speicher laden und dann über die einzelnen Zeichen iterieren. Dateien byteweise einlesen ist recht langsam.
Wenn Du die Zeichen als Zahl, also den Byte-Wert benötigst, dann musst Du die Zeichen mit der `ord()` Funktion umwandeln:
Code: Alles auswählen
from itertools import imap
datei = open('1meg.001', 'rb')
data = datei.read()
datei.close()
for byte in imap(ord, data):
print byte