Seite 1 von 1

von sys.stdin lesen?

Verfasst: Samstag 2. April 2005, 22:00
von Blue-Tiger
Hi there!
ich moechte mein Script gern ueber Commandline-Pipes (bzw. die Umleitung von STDIN) Daten uebergeben. Mein erster ganz einfacher Versuch:

Code: Alles auswählen

import sys
data = sys.stdin.read()
print data
und sein Ergebnis beim Aufruf:

Code: Alles auswählen

D:\works\coding\python>markov.py < test.txt
Traceback (most recent call last):
  File "D:\works\coding\python\markov.py", line 8, in ?
    data = sys.stdin.read()
IOError: [Errno 9] Bad file descriptor

D:\works\coding\python>

Selbiges Ergebnis wenn ich statt read() readlines() verwende... Verwende ich readline(), dann werden 3 Leerzeilen ausgegeben. :?:

Was ist der richtige Weg, um mein Ziel in Python zu realisieren? Ich will den ganzen Inhalt von STDIN in "data". Bevor jetzt jemand kommt mit: gib einfach den Dateinamen als Kommandozeilenargument mit und oeffne die Datei dann open() - das moecht ich nicht!

Komm aus der C++ - Ecke und wuerde gerne Python lernen :)

Verfasst: Sonntag 3. April 2005, 07:37
von mawe
Hi!

Hmm, ich weiß nicht, aber bei mir funtioniert das so wie Du's gezeigt hast.

Gruß, mawe

Verfasst: Sonntag 3. April 2005, 09:11
von Blue-Tiger
ok, my bad:

Ein Aufruf von

Code: Alles auswählen

markov.py < test.txt
gibt obigen Fehler. Ein Aufruf von

Code: Alles auswählen

python markov.py < test.txt
hingegen funktioniert wie er soll.... Tut mir leid fuer's nerven ;)