En Python , como en muchos otros idiomas , es necesario para manejar la entrada del usuario a un programa lanzado desde la línea de comandos . La biblioteca de Python "sys " contiene un mayor número de parámetros específicos del sistema , incluyendo las funciones necesarias para manejar los argumentos de la línea de comandos . La biblioteca de Python " getopt " proporciona un método útil para el análisis de un gran número de argumentos y banderas de la línea de comandos en diferentes formatos. Configuración
Abra un editor de texto y comenzar a escribir un nuevo documento de Python. Formatear el programa de la siguiente manera. La biblioteca "sys " contiene funciones para el manejo de variables de argumentos . Usted tira sys.argv [ 0 ] , ya que es el nombre de la secuencia de comandos , en este caso " my_program.py . " El cheque " __name__ " asegura que el guión fue llamado desde la línea de comandos , en lugar de otro programa .
# my_program.pyimport getopt , sistema
def main ( argv ) : # analizador argumento irá aquí
if __ name__ == " __main__ " : main (sys )
Uso Getopt
Llame a la " getopt.getopt ()" función dentro de su
" main () " función. : argv [ 1 ] con la siguiente sintaxis . Para este ejemplo , los argumentos de " my_program.py " incluyen una bandera " - v " para la salida detallada , una " h" o " - help " bandera para imprimir el uso, y una " i" o "- de entrada" para especificar un archivo de entrada
def main ( argv ) : . Proveedores: opta , args = getopt.getopt ( argv , " hi: v " , [" ayuda" , "input" ] ) , excepto: a excepción getopt.GetoptError , err : print str (err ) ; # errorusage print () , función # escrito por el usuario para imprimir uso apropiado de programsys.exit ( 2 ) # set defaultsverbose = False ; archivo_entrada = Ninguno , porque o, en una apuesta : si o in ( "-h ", " - help" ) : uso ( ) ; sys.exit ( ) elif o == " - v ": detallado = True; elif o in ( " -i ", " - Entrada ") :; : " . argumento desconocido " archivo_entrada = a otro falso afirmar ,
if ( archivo_entrada == None ) : print " . Ningún archivo de entrada dado " ; uso ( ) ; sys.exit ( 2 ) ;
uso Argparser
" argparser " biblioteca proporciona una forma similar de analizar los argumentos con menos código y mensajes de error más detallados
importación argpase , sistema
def main () : . parser = Parser.parse_args = () # Código de comprobar la validez de los argumentos
Consideraciones
Si está preparando su programa de Python para la distribución , es importante para manejar todo el uso posible escenarios en la comprobación de argumentos de entrada . Por ejemplo , un nombre de archivo deben ser evaluados para determinar si se vincula a un archivo con el formato adecuado. Otras variables que deben ser evaluados para determinar que su valor tiene sentido dentro del programa.