Ich schreibe viele kleine Skripte, die Dateien Zeile für Zeile verarbeiten. In Perl, verwende ichPython-Äquivalent von Perls while (<>) {...}?
while (<>) {
do stuff;
}
Das ist praktisch, weil es nicht egal ist, wo die Eingabe von (einer Datei oder stdin) kommt.
In Python Ich benutze diese
if len(sys.argv) == 2: # there's a command line argument
sys.stdin = file(sys.argv[1])
for line in sys.stdin.readlines():
do stuff
, die nicht sehr elegant scheint. Gibt es ein Python-Idiom, das die Eingabe von file/stdin problemlos verarbeitet?
Aus Sicht des "lesbaren Codes" würde ich Ihren Python-Code bevorzugen, da die meisten Leute, die nicht mit Perl arbeiten, nicht wissen, was der Perl-Code bedeutet. – schnaader
Sie können mindestens .readlines() – Jiri
duplizieren: http://stackoverflow.com/questions/715277/how-do-i-iterate-over-all-lines-of-files-passed-on-the-commandline -in-python –