Com analitzar arguments a la línia d'ordres a Python

How Parse Arguments Command Line Python



Els arguments de la línia d'ordres s'utilitzen per passar dades al programa en el moment de l'execució del programa. Aquesta funció està disponible a la majoria dels llenguatges de programació més populars. Però el processament d'arguments de línia de comandes és diferent per a diferents idiomes. Els valors dels arguments es donen amb el nom del programa en el moment d'executar el programa. El llenguatge Python admet aquesta característica. En aquest article es mostra com s’analitzen els arguments de la línia d’ordres a l’escriptura Python.

Analitzant l'argument de línia d'ordres mitjançant sys mòdul

Els arguments de la línia d'ordres s'emmagatzemen en una llista mitjançant sys mòdul. sys.argv s’utilitza per llegir els valors dels arguments de la línia d’ordres. Es pot comptar el nombre total d’arguments de la línia d’ordres mitjançant len () funció. L'ús d'aquest mòdul es descriu a la part de l'article.







Exemple 1: lectura del nombre d'arguments i valors d'argumentació

Creeu un fitxer amb el següent script Python. Aquí, els valors de l’argument de la línia d’ordres s’emmagatzemen a la variable, argv com altres idiomes. len () El mètode compta el nombre total d'arguments passats en el moment d'executar l'script. Els valors dels arguments s’imprimeixen com una matriu al final de l’escriptura.



# Importa el mòdul sys
importació sys

# Imprimiu el nombre total d'arguments
imprimir('Total arguments:', len(sys.argv))
imprimir('Els valors dels arguments són:', pàg(sys.argv))

Sortida:



L'escriptura anterior s'executa aquí mitjançant quatre arguments de línia d'ordres. El primer argument és el nom de l’escriptura i altres són valors numèrics. La següent sortida apareixerà després d'executar l'script.





Exemple 2: lectura de valors d'arguments mitjançant el bucle



A l'exemple anterior, els valors dels arguments s'imprimeixen com a matriu. Creeu un fitxer amb el següent script per imprimir el tipus de variable d'argument i imprimiu cada valor d'argument a cada línia mitjançant el bucle for.

# Importa el mòdul sys
importació sys

# Imprimiu el tipus de variable, sys.argv
imprimir(tipus(sys.argv))

# Imprimiu cada argument de la línia d'ordres de cada línia
imprimir('Els arguments de la línia d'ordres són:')
perjodins sys.argv:
imprimir(jo)

Sortida:

L'escriptura anterior s'executa proporcionant tres arguments amb el nom de l'script. La següent sortida apareixerà després d'executar l'script.

Analitzant l'argument de línia d'ordres mitjançant el mòdul getopt

Cim El mòdul s'utilitza per analitzar els arguments de la línia d'ordres amb les opcions. topped () El mètode d’aquest mòdul s’utilitza per llegir els arguments. Aquest mètode té tres arguments. Els dos primers arguments són obligatoris i l’últim argument és opcional. Els usos d’aquests arguments es donen a continuació.

Arguments: Conté l'argument extret de l'argument de la línia d'ordres.

short_option: Pot ser qualsevol lletra que passi amb l'argument.

opció_larga: S'utilitza per definir opcions llargues amb dues parts. Aquests són el nom de l'opció i el valor de l'opció.

Sintaxi: getopt.getopt (args, short_option, [long_option])

Exemple 3: lectura de valors d'arguments mitjançant opcions curtes getopt

rematat El mòdul conté més funcions que sys mòdul. L'exemple següent mostra com es poden utilitzar les opcions curtes topped () mètode. argv La variable emmagatzemarà els arguments de la línia d'ordres ometent el nom de l'script. A continuació, es defineixen dues opcions al fitxer topped () mètode que es pot utilitzar amb l'argument en temps d'execució. Si es produeix algun error, apareixerà un missatge d'error.

# Importa el mòdul getopt
importació rematat

# Importa el mòdul sys
importació sys

# Emmagatzema la variable d'argument ometent el nom de l'script
argv= sys.argv[1:]

provar:
# Definiu les opcions curtes getopt
opcions,args= rematat.rematat(argv, 'X: i:')

# imprimeix les opcions i l'argument
imprimir(opcions)
imprimir(args)

excepte rematat.GetoptError:

# Imprimiu el missatge d'error si s'ofereix una opció incorrecta
imprimir('S'ofereix una opció incorrecta')

# Acabeu l'script
sys.sortir(2)

Sortida:

Executeu l'script sense cap argument, arguments amb opcions correctes i arguments amb l'opció incorrecta.

Exemple 4: lectura de valors d'arguments mitjançant opcions getopt curtes i llargues

Aquest exemple mostra com es poden utilitzar tant les opcions curtes com les llargues amb els valors dels arguments. Afegirà dos números quan '-A' o bé '–Afegeix' s’utilitzarà com a opció i restarà dos números quan ‘ -s ' o ' –Sub ’ s'utilitzarà com a opció en temps d'execució.

# Importa el mòdul getopt
importació rematat

# Importa el mòdul sys
importació sys

# Emmagatzema la variable d'argument ometent el nom de l'script
argv= sys.argv[1:]

# Inicialitza la variable de resultat
resultat=0

provar:

# Definiu getopt opcions curtes i llargues
opcions,args= rematat.rematat(sys.argv[1:], 'a: s', ['afegir =','sub ='])

# Llegiu cada opció amb el bucle for
peroptar,enfadatdinsopcions:
# Calculeu la suma si l'opció és -a o --add
sioptardins ('-A', '--afegeix'):
resultat= int(argv[1])+int(argv[2])

# Calculeu la solució si l'opció és -s o --sub
elifoptardins ('-s', '--sub'):
resultat= int(argv[1])-int(argv[2])

imprimir('Resultat =',resultat)

excepte rematat.GetoptError:

# Imprimiu el missatge d'error si s'ofereix una opció incorrecta
imprimir('S'ofereix una opció incorrecta')

# Acabeu l'script
sys.sortir(2)

Sortida:

Executeu l'script sense arguments i opcions, arguments amb l'opció '-a', arguments amb l'opció '-s' i arguments amb l'opció incorrecta.

Analitzant l'argument de la línia d'ordres mitjançant el mòdul argparse

El mòdul Argparse conté moltes opcions per llegir arguments de la línia d'ordres. Aquest mòdul pot proporcionar valors d'argument per defecte, l'argument amb el tipus de dades, arguments de posició, missatge d'ajuda, etc.

Exemple 5: lectura d'arguments de la línia d'ordres mitjançant argparse

L'exemple següent mostra l'ús de argparse mòdul per llegir l'argument de la línia d'ordres. Aquí es defineixen dues opcions per llegir arguments de línia d'ordres. Aquests són '-N' o '–nom' i '-E' o '–email'. Si l'usuari proporciona algun argument incorrecte, mostrarà un error amb un missatge d'ús. Si l'usuari proporciona opcions correctes amb els arguments, mostrarà els valors de l'argument. si l'usuari executa l'script amb l'opció '–help', proporcionarà el missatge necessari per executar-lo.

# Importa el mòdul argparse
importacióargparse

# Importa el mòdul sys
importació sys

# Declareu la funció per definir arguments de línia d'ordres
defreadOptions(args=sys.argv[1:]):
analitzador =argparse.ArgumentParser(descripció='Les llistes d'ordres d'anàlisi.')
analitzador.add_argument('-n', '--nom', ajuda='Escriviu el vostre nom'.)
analitzador.add_argument('-I', '--email', ajuda='Escriviu el vostre correu electrònic'.)
opta= analitzador.parse_args(args)
tornaropta

# Truqueu a la funció per llegir els valors dels arguments
opcions=readOptions(sys.argv[1:])
imprimir(opcions.nom)
imprimir(opcions.correu electrònic)

Sortida:

Executeu l'script amb una opció incorrecta, una opció correcta i una opció d'ajuda.

Conclusió:

En aquest tutorial s’expliquen diverses maneres de llegir arguments de la línia d’ordres mitjançant tres mòduls Python. Espero que aquest tutorial ajudi el programador que vol llegir dades mitjançant arguments de línia de comandes a Python.

Mireu el vídeo de l'autor: aquí