In Python, wie in vielen anderen Sprachen , sie es für erforderlich , um Benutzereingaben zu einem Programm aus der Befehlszeile gestartet behandeln. Die Python " sys" -Bibliothek enthält eine größere Anzahl von System - Parameter , einschließlich der Funktionen notwendig, um Argumente von der Kommandozeile aus zu behandeln. Die Python " getopt " Bibliothek bietet eine nützliche Methode für die Analyse einer großen Anzahl von Kommandozeilen-Argumente und Fahnen in verschiedenen Formaten. Setup-
Öffnen Sie einen Text -Editor und dem Schreiben beginnen ein neues Python -Dokument. Formatieren Sie das Programm wie folgt . Die " sys" Bibliothek enthält Funktionen für den Umgang mit Variablen Argument . Sie strippen sys.argv [0] , wie es ist der Name des Skripts , in diesem Fall " my_program.py . " Die " __name__ " Prüfung stellt sicher, dass das Skript von der Kommandozeile aus aufgerufen wurde , anstatt ein anderes Programm .
# my_program.pyimport getopt , sys
def main ( argv ) : # Argument Parser hier gehen
if __ name__ == " __main__ " : main (sys . argv [ 1:] )
Mit Getopt
Rufen Sie die " getopt.getopt () "-Funktion innerhalb Ihres " main () "-Funktion mit folgender Syntax . Für dieses Beispiel sind Argumente " my_program.py " ein Flag " - v" für ausführliche Ausgabe , ein "-h " oder " - help" Fahne, um die Nutzung zu drucken, und ein " -i " oder "- Eingang" , um eine Eingabe -Datei angeben
def main ( argv ) : . versuchen : entscheidet , args = getopt.getopt ( argv , " hallo : v" , [ "help" , "Input" ] ) , ausgenommen: außer getopt.GetoptError , äh : print str ( err) ; # print errorusage (); # User - Funktion geschrieben , um geeignete Nutzung programsys.exit (2) zu drucken; # defaultsverbose = False gesetzt ; input_file = None , denn o, a in entscheidet : ob in o ( "-h ", " - help" ) : usage (); sys.exit (); elif o == " -v ": verbose = True ; elif o in ( " -i ", " - Eingang" ) : ; : " . Unbekanntes Argument " input_file = a anderes behaupten False
if ( input_file == None ) : print " . No input file gegeben "; Nutzung (); sys.exit (2);
Mit Argparser
" argparser " Bibliothek bietet eine ähnliche Art und Weise der Parsen Argumente mit weniger Code und mehr verbose Fehlermeldungen
Import argpase , sys
def main () : . parser = = Parser.parse_args () # -Code , um die Gültigkeit von Argumenten zu überprüfen
Überlegungen
Wenn Sie die Vorbereitung Ihrer Python-Programm zur Verteilung , ist es wichtig , alle möglichen Nutzung Griff Szenarien bei der Suche nach Input-Argumente. Zum Beispiel sollte ein Dateiname geprüft, um festzustellen , ob sie in eine Datei von dem entsprechenden Format verknüpft werden. Andere Variablen sollten überprüft werden , um festzustellen, dass ihr Wert innerhalb des Programms bedeutet werden.