Benutzereingaben und Befehlszeilenargumente

Wie habe ich ein Python-Skript, das a) kann Benutzereingaben akzeptieren und wie mache ich es b) lesen in Argumente, wenn von der Kommandozeile ausgeführt?

Lösung

Um Benutzereingaben zu lesen, können Sie das Modul cmd 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 verwenden.

text = raw_input("prompt")  # Python 2
text = input("prompt")  # Python 3

Kommandozeileneingaben stehen in sys.argv. Versuchen Sie dies in Ihrem Skript:

import sys
print (sys.argv)

Es gibt zwei Module zum Parsen von Kommandozeilenoptionen: optparse (seit Python 2.7 veraltet, verwenden Sie stattdessen argparse) und getopt. Wenn Sie nur Dateien in Ihr Skript eingeben wollen, sollten Sie die Macht von fileinput nutzen.

Die Python Library Reference ist Ihr Freund.

Kommentare (3)
var = raw_input("Please enter something: ")
print "you entered", var

Oder für Python 3:

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

Der beste Weg zur Verarbeitung von Kommandozeilenargumenten ist das Modul argparse.

Verwenden Sie raw_input(), um Benutzereingaben zu erhalten. Wenn Sie das Modul readline importieren, haben Ihre Benutzer die Möglichkeit, Zeilen zu bearbeiten und eine Historie zu erstellen.

Kommentare (2)