I Python , som i mange andre språk , det er det nødvendig å håndtere brukerens input til et program startes fra kommandolinjen . Python " sys " Biblioteket inneholder et større antall system - spesifikke parametre , inkludert funksjoner som er nødvendige for å håndtere argumenter fra kommandolinjen . Python " getopt " biblioteket gir en nyttig metode for analysering et stort antall kommandolinje argumenter og flagg i ulike formater . Oppsett
Åpne en teksteditor og begynner å skrive et nytt Python dokument. Formater program som følger. Den " sys " Biblioteket inneholder funksjoner for håndtering argument variabler . Du vil stripe sys.argv [ 0 ] som det er navnet på manuset , i dette tilfellet " my_program.py . " The " __name__ " check sikrer at manuset ble kalt fra kommandolinjen , snarere enn et annet program .
# my_program.pyimport getopt , sys
def main ( argv ): # Argument parser vil gå her
hvis __ name__ == " __main__ " : main ( sys . argv [ 1: ] )
hjelp getopt
Ring " getopt.getopt ( ) "-funksjonen fra din "main ( ) "-funksjonen ved hjelp av følgende syntaks. For dette eksempelet , argumenter til " my_program.py " inkluderer et flagg " - v" for verbose utgang, en " - h" eller "- help" flagg for å skrive ut bruken , og en " -i " eller " - inngang " for å angi en input-fil
def main ( argv ) : . prøve : opts , args = getopt.getopt ( argv , " hi : v" , [" hjelp" , "input "] ); unntatt: unntatt getopt.GetoptError , err : print str (err ) ; # print errorusage (); # Brukerstyrt skrevet funksjonen for å skrive riktig bruk av programsys.exit ( 2 ) ; # set defaultsverbose = False ; input_file = Ingen, for o, en i opts : hvis oi ( " - h" , "- help" ) : bruk (); sys.exit (); elif o == " - v" : ordrik = true; elif oi ( " - i", "- input" ) : ; : " . Ukjent argument " input_file = et annet hevde False , etter
if ( input_file == None ) : print " . No input file gitt "; bruk (); sys.exit ( 2 ) ;
hjelp Argparser
" argparser " biblioteket gir en lignende måte parsing argumenter med mindre kode og mer grundig feilmeldinger
import argpase , sys
def main ( ) : . parser = = Parser.parse_args ( ) #-kode for å sjekke gyldigheten av argumentene
Hensyn
Hvis du forbereder din Python program for distribusjon , er det viktig å håndtere all mulig bruk scenarier når du sjekker for argumenter. For eksempel bør et filnavn kontrolleres for å avgjøre om det linker til en fil med riktig format . Andre variabler bør kontrolleres for å fastslå at deres verdi har betydning i programmet.