Zeichen als ASCII code einlesen
dürfte eigentlich keine grosse sache sein, aber mit typecasting funtzt's offenbar nicht so ohne weiteres (valueerror...base 10:): ich will zeichen für zeichen (file.read(1)) einlesen und dann mit dem ASCII code des Zeichens hantieren (ASCII code v.a. wegen den Zeichen mit den werten 10 und -1). also meine eigentliche frage: wie bekomm ich den ASCII code anstatt der Zeichen ( bin blutiger anfänger in python ) und ist die methode read(1) hier überhaupt das wonach ich suche?
Suchst du ord?
Code: Alles auswählen
>>> bla='X'
>>> ord(bla)
88
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also ich würde nicht wirklich read(1) machen, also Zeichen für Zeichen aus der Datei lesen... Effektiver dürfte es sein, eine ganze Zeile mit readline() zu lesen und dann über die einzelnen Seiten per for-Schreife zu interieren...
-1 gibt's nicht als ASCII Wert. Als Byte im Zweierkomlement wäre das ohne Vorzeichen die 255, was streng genommen auch nicht in ASCII liegt.ede hat geschrieben:(ASCII code v.a. wegen den Zeichen mit den werten 10 und -1).
Was willst Du denn mit den Bytewerten machen?
naja nicht ganz, aber nicht schlecht geraten
jedenfalls reicht ord() schon aus, danke!
jedenfalls reicht ord() schon aus, danke!
also bei wenn man in C ein file Zeichen für Zeichen ausliest, dann ist das letzte, sofern als abbruchbedingung eingeben, die Dateiendkennung, also EOF, wobei das ein Konstante für -1 ist.BlackJack hat geschrieben:-1 gibt's nicht als ASCII Wert
also bei ord(EOF) kommt immer "TypeError: ord() expected a character, but string of length 0 found". gibts ne funktion, die dann -1 ausspuckt, wenn nein, wie kann ich die dann coden? oder sollte ich bei der funktion direkt auf C umsteigen?
Mach doch am besten einen Post auf, wo du dein eigentliches Problem schilderst. Sprich: erzähle uns, was du machen willst, nicht ein spezielles Problem des wie.
Unter Python programmiert man anders als in C. Wenn du 1:1 C-Code nachprogrammierst, ist das kontraproduktiv.
Ein EOF erkennst du daran, dass read einen leeren String zurückgibt...
Unter Python programmiert man anders als in C. Wenn du 1:1 C-Code nachprogrammierst, ist das kontraproduktiv.
Ein EOF erkennst du daran, dass read einen leeren String zurückgibt...
Code: Alles auswählen
datei = open(...)
buffer = datei.read(4096)
while len(buffer) > 0:
mach_irgendwas(buffer)
buffer = datei.read(4096)
# Oder wenn du Zeilenweise was machen willst:
for zeile in datei:
mach_was_mit(zeile)