I Python, som i mange andre sprog , er det nødvendigt at håndtere bruger input til et program iværksat fra kommandolinjen . Python " sys " Biblioteket indeholder et større antal anlægsspecifikke parametre , herunder funktioner, der er nødvendige for at håndtere argumenter fra kommandolinjen. Python " getopt " Biblioteket giver en nyttig metode til at tolke et stort antal kommandolinjeargumenter og flag i forskellige formater. Opsætning
Åbn en teksteditor og begynde at skrive et nyt Python dokument . Formater programmet som følger. Den " sys " Biblioteket indeholder funktioner til håndtering argument variabler. Du vil strippe sys.argv [0] , da det er navnet på scriptet , i dette tilfælde " my_program.py . " The " __name__ " check sikrer at dit script blev kaldt fra kommandolinjen , snarere end et andet program .
# my_program.pyimport getopt , sys
def main ( argv ): # Argument parser vil gå her
hvis __ name__ == " __main__ " : main ( sys . argv [ 1: ] )
Brug getopt
Kald " getopt.getopt ()" funktionen fra din " main ( )" funktionen ved hjælp af følgende syntaks. I dette eksempel omfatter argumenter for " my_program.py " et flag " - v" for verbose output, en " -h " eller "- help" flaget for at udskrive brugen , og en " -i " eller " - indgang " for at angive et input -fil
def main ( argv ) : . prøve : vælger , args = getopt.getopt ( argv " hi : v" , [" hjælp" , "input "] ) , undtagen : undtagen getopt.GetoptError , err : print str ( err ) # print errorusage (); # User- skriftlig funktion til at udskrive passende brug af programsys.exit (2), # sæt defaultsverbose = False , input_file = Ingen , for o , en i vælger : if oi ( " - h" , "- help" ) : forbrug (); sys.exit (); Elif o == " - v" : verbose = true; Elif oi ( " -i ", " - indgang" ) : ; : " . Ukendt argument" input_file = a ellers hævde False , salg
if ( input_file == None ) : print " . Ingen inddatafil givet" , brug (); sys.exit (2),
Brug Argparser
" argparser " biblioteket giver en lignende måde at parsing argumenter mindre kode og flere verbose fejlmeddelelser
import argpase , sys
def main () : . parser = = Parser.parse_args ( ) # kode til at kontrollere gyldigheden af argumenter
Overvejelser
Hvis du forbereder din Python program for distribution, er det vigtigt at håndtere alle mulige anvendelse scenarier, når tjekker for inputargumenter . For eksempel bør et filnavn skal kontrolleres for at fastslå, om det forbinder til en fil på et passende format . Andre variabler bør kontrolleres for at fastslå, at deres værdi har betydning i programmet.