Seite 1 von 1

sys.stdin

Verfasst: Donnerstag 3. Juli 2003, 15:53
von ertlpott
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?

Re: sys.stdin

Verfasst: Donnerstag 3. Juli 2003, 16:15
von joerg
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

Re: sys.stdin

Verfasst: Donnerstag 3. Juli 2003, 16:15
von Voges
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

geht doch gar net!

Verfasst: Freitag 4. Juli 2003, 00:05
von gast
also bei mir geht der code gar net....

weil es anders heissen muss

Verfasst: Freitag 4. Juli 2003, 01:07
von Gast
nämlich readline anstatt readlines :D

Re: weil es anders heissen muss

Verfasst: Freitag 4. Juli 2003, 08:05
von joerg
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

re

Verfasst: Montag 7. Juli 2003, 08:30
von ertlpott
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.

Re: re

Verfasst: Montag 7. Juli 2003, 09:15
von 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

re

Verfasst: Dienstag 8. Juli 2003, 13:28
von ertlpott
ahaaaaaaaaaaaaa
:lol: Begriffstutziger gehts glaub ich nicht mehr *gg*

danke für die Geduld

Grüße

Simon