Wie habe ich ein Python-Skript, das a) Benutzereingaben akzeptieren kann und wie ich es dazu bringe, b) Argumente einzulesen, wenn es über die Befehlszeile ausgeführt wird?
python
input
command-line-arguments
Teifion
quelle
quelle
argparse
stattoptparse
.Antworten:
Um Benutzereingaben zu lesen, können Sie das
cmd
Modul zum einfachen Erstellen eines Mini-Befehlszeileninterpreters (mit Hilfetexten und automatischer Vervollständigung) undraw_input
(input
für Python 3+) zum Lesen einer Textzeile des Benutzers ausprobieren .Befehlszeileneingaben sind in
sys.argv
. Versuchen Sie dies in Ihrem Skript:Es gibt zwei Module zum Parsen von Befehlszeilenoptionen:
(seit Python 2.7 veraltet,optparse
argparse
stattdessen verwenden) undgetopt
. Wenn Sie nur Dateien in Ihr Skript eingeben möchten, sehen Sie sich die Möglichkeiten von anfileinput
.Die Python-Bibliotheksreferenz ist dein Freund.
quelle
raw_input
wurdeinput
in Python 3.x umbenannt - Dokumentation hierOder für Python 3:
quelle
raw_input
, es ist eine eingebaute Funktion.raw_input
ist in Python 3.x nicht mehr verfügbar. Wurderaw_input
aber umbenanntinput
, so besteht die gleiche Funktionalität.Dokumentation der Änderung
quelle
import fileinput result=[] for line in fileinput.input(): result.append(line)
Der beste Weg, um Befehlszeilenargumente zu verarbeiten, ist das
argparse
Modul.Verwenden Sie
raw_input()
diese Option , um Benutzereingaben abzurufen. Wenn Sie die importieren, habenreadline module
Ihre Benutzer Zeilenbearbeitung und Verlauf.quelle
Achten Sie darauf, die
input
Funktion nicht zu verwenden , es sei denn, Sie wissen, was Sie tun. Im Gegensatz zuraw_input
,input
wird jeden Python Ausdruck annehmen, so ist es ein bisschen wieeval
quelle
Dieses einfache Programm hilft Ihnen zu verstehen, wie Sie die Benutzereingaben über die Befehlszeile eingeben und Hilfe beim Übergeben ungültiger Argumente anzeigen.
1) Um die Quadratwurzel von 5 zu finden
2) Übergabe eines anderen ungültigen Arguments als der Nummer
quelle
Verwenden Sie 'raw_input' für die Eingabe von einer Konsole / einem Terminal.
Wenn Sie nur ein Befehlszeilenargument wie einen Dateinamen oder etwas anderes möchten, z
dann können Sie sys.argv verwenden ...
sys.argv ist eine Liste, in der 0 der Programmname ist. Im obigen Beispiel wäre sys.argv [1] also "Dateiname.txt".
Wenn Sie vollständige Befehlszeilenoptionen wünschen, verwenden Sie das optparse-Modul.
Pev
quelle
Wenn Sie Python <2.7 ausführen , benötigen Sie optparse , das, wie im Dokument erläutert, eine Schnittstelle zu den Befehlszeilenargumenten erstellt, die beim Ausführen Ihrer Anwendung aufgerufen werden.
In Python ≥2.7 ist optparse jedoch veraltet und wurde wie oben gezeigt durch argparse ersetzt . Ein kurzes Beispiel aus den Dokumenten ...
quelle
Ab Python
3.22.7 gibt es jetzt argparse für die Verarbeitung von Befehlszeilenargumenten.quelle
Wenn es sich um eine 3.x-Version handelt, verwenden Sie einfach:
Zum Beispiel möchten Sie 8 eingeben:
x ist gleich 8, aber es wird eine Zeichenfolge sein, es sei denn, Sie definieren es anders.
Sie können also den Befehl convert verwenden, z. B.:
quelle
In Python 2:
In Python 3:
quelle
quelle