Em Python, como em muitas outras línguas , é necessário para lidar com a entrada do usuário para um programa iniciado a partir da linha de comando. Os " sys" Python biblioteca contém um número maior de parâmetros específicos do sistema , incluindo as funções necessárias para lidar com os argumentos da linha de comando . O " getopt " biblioteca Python fornece um método útil para a análise de um grande número de argumentos de linha de comando e bandeiras em diferentes formatos. Setup
Abra um editor de texto e começar a escrever um novo documento Python. Formatar o programa da seguinte forma. A biblioteca "sys " contém funções para a manipulação de variáveis de argumento. Você irá retirar sys.argv [0] , pois é o nome do script, neste caso, " my_program.py . " O cheque " __name__ " garante que o seu script foi chamado a partir da linha de comando, em vez de um outro programa .
# my_program.pyimport getopt , sys
def main ( argv ): # Argumento parser vai aqui
se __ name__ == " __main__ ": principais (sys . argv [ 1:] ),
Usando Getopt
Chame a função " getopt.getopt ()" a partir de dentro de sua função " main () " usando a seguinte sintaxe . Para este exemplo, argumentos para " my_program.py " incluem um sinalizador " - v" para a saída detalhada , um " h" ou "- ajudar a" bandeira para imprimir o uso, e um " i" . ou "- entrada " para especificar um arquivo de entrada
def main ( argv ) : try: opta , args = getopt.getopt ( argv , " oi : v" , [" help" , "input" ] ) , excepto: excepto getopt.GetoptError , err: str print ( err) ; errorusage # print (); # função escrita pelo usuário para imprimir o uso apropriado de programsys.exit (2); # set defaultsverbose = False ; input_file = None , pois o, um em optar : se o in ( "-h ", " - help " ) : o uso (); sys.exit (); elif o == " - v" : verbose = True; elif o in ( " -i ", " - input" ) : input_file = a ; mais: afirmar False, " argumento desconhecido . "
if ( input_file == None ) : print " . No arquivo de entrada dada "; uso (); sys.exit (2);
Usando Argparser
A " argparser " biblioteca fornece uma maneira similar de analisar argumentos com menos código e mensagens de erro mais detalhado
argpase importação, sistema
def main () : . parser = = Parser.parse_args () # Código para verificar a validade dos argumentos
Considerações
Se você está preparando o seu programa Python para a distribuição , é importante para lidar com todo o uso possível cenários durante a verificação de argumentos de entrada . Por exemplo, um nome de arquivo deve ser verificado para determinar se ele liga para um arquivo com o formato apropriado. Outras variáveis devem ser verificados para determinar que o seu valor tem significado dentro do programa.