Zeichen als ASCII code einlesen

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
ede
User
Beiträge: 20
Registriert: Samstag 18. November 2006, 10:38

Montag 20. November 2006, 21:32

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 ( :oops: bin blutiger anfänger in python :D ) und ist die methode read(1) hier überhaupt das wonach ich suche?
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Montag 20. November 2006, 21:49

Suchst du ord?

Code: Alles auswählen

>>> bla='X'
>>> ord(bla)
88
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 21. November 2006, 10:37

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Dienstag 21. November 2006, 11:24

ede hat geschrieben:(ASCII code v.a. wegen den Zeichen mit den werten 10 und -1).
-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.

Was willst Du denn mit den Bytewerten machen?
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Dienstag 21. November 2006, 16:29

Klingt mir so als ob er da was "Crypten" will ^^
ede
User
Beiträge: 20
Registriert: Samstag 18. November 2006, 10:38

Dienstag 21. November 2006, 20:03

naja nicht ganz, aber nicht schlecht geraten :wink:

jedenfalls reicht ord() schon aus, danke!
BlackJack hat geschrieben:-1 gibt's nicht als ASCII Wert
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.
ede
User
Beiträge: 20
Registriert: Samstag 18. November 2006, 10:38

Dienstag 21. November 2006, 20:12

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?
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Dienstag 21. November 2006, 21:31

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...

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)
Antworten