624 Stimmen

Abfrage von Benutzereingaben und Lesen von Befehlszeilenargumenten

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?

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 von optparse .

612voto

Antti Rasinen Punkte 9468

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: optparse (veraltet seit Python 2.7, verwenden Sie 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.

514voto

lbz Punkte 9260
var = raw_input("Please enter something: ")
print "you entered", var

Oder für Python 3:

var = input("Please enter something: ")
print("You entered: " + var)

214voto

steampowered Punkte 11249

raw_input ist in Python 3.x nicht mehr verfügbar. raw_input wurde umbenannt in input so dass die gleiche Funktionalität vorhanden ist.

input_var = input("Enter something: ")
print ("you entered " + input_var) 

Dokumentation der Änderung

35voto

Dave Webb Punkte 184809

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.

19voto

Vhaerun Punkte 12116

Achten Sie darauf, dass Sie die input Funktion, es sei denn, Sie wissen, was Sie tun. U raw_input , input akzeptiert jeden Python-Ausdruck, also ist es so ähnlich wie eval

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X