Python Lesen von der Kommandozeile Argumente oder stdin
Beim schreiben von text-orientierten Kommandozeilen-Programme sind in Python, habe ich oft wollen, Lesen Sie entweder alle Dateien in der Befehlszeile übergeben, oder (XOR) - standard-Eingang (wie Unix cat
tut, oder Perl -<>
). So, ich sage
if len(args) == 0: # result from optparse
input = sys.stdin
else:
input = itertools.chain(*(open(a) for a in args))
Ist dies die Pythonic Weg, dies zu tun, oder hat mein fehlen einige Teil der Bibliothek?
- mögliche Duplikate von Wie haben Sie von stdin Lesen, in python
- Duplizieren stackoverflow.com/questions/1450393/...
- Es ist nicht doppelt. Diese Frage ist Optional über das Lesen von
stdin
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie fileinput.
Einem standard-Anwendungsfall:
open("", 'r').read()
) es gibt keine integrierte Möglichkeit zu tun, dass mit derfileinput
stdlib-Moduls. Wenn ich mich nicht Irre beim Lesen der docs.Sehen
Wie Sie Lesen von der Standardeingabe, das in Python?
In Python 3,
argparse
behandelt filetype Objekte sehr schön. Es ist ein extrem leistungsfähiges Modul und die docs kommen mit vielen Beispielen, so dass es einfach, schnell schreiben Sie den code, den Sie möchten. (Wie Pythonic!)Können Sie auch profitieren von diese StackOverflow-Frage über die Verwendung
argparse
wahlweise auch von stdin Lesen.