I Python , liksom i många andra språk , det är det nödvändigt att hantera indata till ett program startas från kommandoraden . Python " sys " biblioteket innehåller ett större antal systemspecifika parametrar, inklusive funktioner som är nödvändiga för att hantera argument från kommandoraden . Python " getopt " biblioteket tillhandahåller en användbar metod för att analysera ett stort antal kommandoradsargument och flaggor i olika format . Setup
Öppna en textredigerare och börja skriva ett nytt Python dokument . Formatera program enligt följande . Den " sys " Biblioteket innehåller funktioner för hantering av argument variabler . Du kommer band sys.argv [ 0 ] eftersom det är namnet på skriptet , i det här fallet " my_program.py . " The " __name__ " check säkerställer att ditt manus hette från kommandoraden , snarare än ett annat program .
# my_program.pyimport getopt , sys
def main ( argv ) : # Argument parser kommer gå här
om __ name__ == " __main__ " : main ( sys . argv [ 1 : ] )
Använda getopt
Ring " getopt.getopt ( ) " -funktion från din " main ( ) " -funktion med följande syntax . För detta exempel , argument till " my_program.py " inkluderar en flagga " - v " för utförlig output , en " - h " eller " - help " flagga för att skriva ut användningen , och ett " -i " eller " - input " för att ange en indatafil
def main ( argv ) : . prova : väljer , args = getopt.getopt ( argv , " hej : v " , [ "hjälp " , " input " ] ) , utom utom getopt.GetoptError , fela : print str ( err ) ; # print errorusage ( ) ; # Användarvänlig skriftligt funktion för att skriva ut lämplig användning av programsys.exit ( 2 ) , # satt defaultsverbose = False ; indatafil = None , för o , en i väljer : om o ( " - h " , " - help " ) : användning ( ) ; sys.exit ( ) ; Elif o == " - v " : verbose = true; Elif o ( " - i " , " - input " ) : ; : " . Unknown argument " indatafil = ett annat hävda False ,
om ( indatafil == None ) : print " . ingen infil ges " , användning ( ) ; sys.exit ( 2 ) ,
Använda Argparser
" argparser " biblioteket tillhandahåller ett liknande sätt att analysera argument med mindre kod och mer utförliga felmeddelanden
import argpase , sys
def main ( ) : . parser = = Parser.parse_args ( ) # Kod för att kontrollera giltigheten i argument
Överväganden
p Om du förbereder din Python program för distribution , är det viktigt att hantera all möjlig användning scenarier vid kontroll av inmatade argument . Till exempel bör ett filnamn kontrolleras för att avgöra om det länkar till en fil med lämpligt format . Andra variabler bör kontrolleras för att fastställa att deras värde har betydelse inom programmet .