Frage zu Fileinput

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
HPL
User
Beiträge: 10
Registriert: Mittwoch 1. Dezember 2010, 14:29

Donnerstag 1. März 2012, 17:18

Wenn ich eine Textdatei habe, lese ich diese normalerweise über sys.stdin (mit der Methode readLine()) ein.

Nun soll es ja auch möglich sein, über fileinput Dateien einzulesen, sodass ich in der Shell eintippe:

"python meinProgramm.py < DateiDieIchEinlesenWill.txt"

Als ich das über Fileinput versuchte, war das nicht von großem Erfolg gekrönt, ich weiß ehrlich gesagt auch gar nicht, ob das überhaupt geht, dies: http://docs.python.org/library/fileinput.html brachte mir da keine besonders große Erleuchtung. Geht das, wenn ja, dann wie?
EyDu
User
Beiträge: 4872
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 1. März 2012, 17:27

Du hast da galube ich etwas falsch verstanden. ``fileinput`` erwartet Dateinamen über ``sys.argv``, du müsstest den Dateinamen also als Parameter übergeben. Hier besteht eigentlich gar kein Problem, da du in deinem gezeigten Fall einfach normal über ``sys.stdin.read`` lesen kannst.
Das Leben ist wie ein Tennisball.
lunar

Donnerstag 1. März 2012, 18:18

@HPL: "fileinput" liest die Standardeingabe nur, wenn das explizit in der Kommandozeile oder den übergebenen Dateinamen angefordert wird, indem man dem Standard entsprechend "-" übergibt. Da steht im Übrigen auch ziemlich deutlich in der Dokumentation:
This iterates over the lines of all files listed in sys.argv[1:], defaulting to sys.stdin if the list is empty. If a filename is '-', it is also replaced by sys.stdin. To specify an alternative list of filenames, pass it as the first argument to input(). A single file name is also allowed.
HPL
User
Beiträge: 10
Registriert: Mittwoch 1. Dezember 2010, 14:29

Donnerstag 1. März 2012, 20:12

Danke. Ich stand aufm Schlauch.
Antworten