En primer lugar tenemos que saber que el contenido de la línea de comandos nos viene en forma de lista en sys.argv.
Si invocamos un programa en python, como parámetros nos interesará todo lo que venga después de la primera posición, es decir sys.argv[1:], así que en general llamaremos a una función main así
if __name__=='__main__':
main(sys.argv[1:])
Ahora veremos el funcionamiento de getopt, os paso un ejemplo:
def main(argv):Vemos que getopt toma tres argumentos:
try:
opts, args = getopt.getopt(argv, "hps:",
["help", "prn", "server="])
except getopt.GetoptError:
print "Opcion no valida"
usage()
sys.exit(2)
- El primero es la cadena que le pasamos para analizar
- El segundo son las opciones en forma corta, las que se usan con la sintaxis -h, -p, -s="algo"
- El tercero son las mismas opciones pero en forma larga que se usan con dos guiones --help, --prn, --server="algo"
Como ahora ya tenemos las opciones y sus posibles valores, el tratamiento será algo similar a esto
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
sys.exit()
elif opt in ('-p', "--prn"):
p_pantalla=True
elif opt in ("-s", "--server"):
r_server=arg
Si hay algún tipo de error durante el parseado de los argumentos, es una buena idea dar una ayuda al usuario antes de terminar el programa, por ejemplo
def usage():
print """
Opcions:
--help (-h)\t\tTreu aquesta ajuda
--prn (-p)\t\tTreu impressio de tickets per pantalla
--server (-s)\t\tServidor actualització
"""
Y esto es todo por hoy