sys.stdin

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
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

Bei diesem Code

Code: Alles auswählen

import sys
data = sys.stdin.readlines()
print "Habe",len(data),"Zeilen gezählt"
sollte, laut meinem veralteten Buch, mein Computer den String "Habe 3 Zeilen gezählt" ausspucken
Das einzige was jedoch geschieht, ist, dass, beim Aufruf der Datei, ich am Beginn der nächsten Zeile stehe, das weiße Kästchen Blinkt, und ich etwas eingeben kann.

Liegt das daran, dass mein Buch noch von Version 1.5 schreibt :wink:, oder an was anderem?
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

ertlpott hat geschrieben:Bei diesem Code

Code: Alles auswählen

import sys
data = sys.stdin.readlines()
print "Habe",len(data),"Zeilen gezählt"
sollte, laut meinem veralteten Buch, mein Computer den String "Habe 3 Zeilen gezählt" ausspucken
Das einzige was jedoch geschieht, ist, dass, beim Aufruf der Datei, ich am Beginn der nächsten Zeile stehe, das weiße Kästchen Blinkt, und ich etwas eingeben kann.

Liegt das daran, dass mein Buch noch von Version 1.5 schreibt :wink:, oder an was anderem?
An der Version liegt das sicher nicht.

Vielleicht hast Du ein veraltetes stdin? Inzwischen gibt es welche mit mindestens zehn statt drei Zeilen zu kaufen!

Aber Spaß beiseite: Das Verhalten ist doch genau so, wie Du es programmiert hast: lese zeilenweise von der Standardeingabe (und zwar bis Dateiende). Wenn Du jetzt drei Zeilen Text eintippst und dann Dateiende (unter UNIX z.B. CTRL-D), wird die erwartete Ausgabe kommen.

Vielleicht ist das in deinem Buch nicht deutlich beschrieben, aber ich tippe auf ein Verständnisproblem deinerseits. :-)

Jörg
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hast Du auch die nächsten 6 Zeilen des Buches gelesen ;-)?
Ansonsten, Du kannst bei dem blinkenden Cursor was eingeben (auch mehrere Zeilen) und dann unter Windows mit <strg><z> und unter Unix mit <strg><d> das Dateiende simulieren.
Jan
gast

also bei mir geht der code gar net....
Gast

nämlich readline anstatt readlines :D
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

rolgal hat geschrieben:nämlich readline anstatt readlines :D
readlines() gibt alle Zeilen als String-Liste wieder, readline() gibt die nächste Zeile.

Vielleicht ist Deine Python-Version zu alt?

Jörg
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

sry, war das wochenende weg.

also an einer veralteten python version kann es glaube ich nicht liegen, ich hab 2.2.
hab schon die nächsten zeilen (oder seiten :wink: ) gelesen, aber bei mir funzts trotzdem ned
klingt jetz wahrscheinlich komplett bescheuert, aber wenn ich bei dem prog dann auf strg+z drücke, steht dann nur "^Z" in der Kommandozeile.
naja egal

trotzdem danke.
Gast

ertlpott hat geschrieben: aber wenn ich bei dem prog dann auf strg+z drücke, steht dann nur "^Z" in der Kommandozeile.
Stimmt, danach muss man noch einmal <enter> drücken.
Jan
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

ahaaaaaaaaaaaaa
:lol: Begriffstutziger gehts glaub ich nicht mehr *gg*

danke für die Geduld

Grüße

Simon
Antworten