Wie habe ich ein Python-Skript, das a) kann Benutzereingaben akzeptieren und wie mache ich es b) lesen in Argumente, wenn von der Befehlszeile ausgeführt?
Antworten
Zu viele Anzeigen?Um Benutzereingaben zu lesen, können Sie versuchen die cmd
Modul zur einfachen Erstellung eines Mini-Befehlszeileninterpreters (mit Hilfetexten und Autovervollständigung) und raw_input
( input
für Python 3+) zum Lesen einer Textzeile vom Benutzer.
text = raw_input("prompt") # Python 2
text = input("prompt") # Python 3
Kommandozeileneingaben sind in sys.argv
. Versuchen Sie dies in Ihrem Skript:
import sys
print (sys.argv)
Es gibt zwei Module zum Parsen von Kommandozeilenoptionen: (veraltet seit Python 2.7, verwenden Sie optparse
argparse
stattdessen) und getopt
. Wenn Sie nur Dateien in Ihr Skript eingeben wollen, sollten Sie sich die Leistungsfähigkeit von fileinput
.
En Referenz der Python-Bibliothek ist Ihr Freund.
Der beste Weg zur Verarbeitung von Kommandozeilenargumenten ist die argparse
Modul.
Utilice raw_input()
um Benutzereingaben zu erhalten. Wenn Sie die readline module
Ihre Benutzer können die Zeilen bearbeiten und den Verlauf verfolgen.
- See previous answers
- Weitere Antworten anzeigen
9 Stimmen
Die Antwort hängt von Ihrer Version von Python ab. Python 3.x handhabt dies ein wenig anders als Python 2.7
4 Stimmen
Und Python 2.7 macht das auch ein bisschen anders als die Versionen vor 2.7, z.B.
argparse
anstelle vonoptparse
.3 Stimmen
Duplikat von Wie kann man in Python von stdin lesen? , Wie werden Befehlszeilenargumente gelesen/verarbeitet? . Diskutiert auf meta .
0 Stimmen
Es ist nicht wirklich ein Duplikat des ersten: Die Benutzereingabe kommt von
/dev/tty
, was nicht immer mit der Standardeingabe identisch ist.