logo

Arguments de línia d'ordres en Python

Els arguments que es donen després del nom del programa a l'intèrpret d'ordres de la línia d'ordres del sistema operatiu es coneixen com a Arguments de la línia d'ordres . Python ofereix diverses maneres de tractar aquest tipus d'arguments. Els tres més comuns són:

Utilitzant sys.argv

El mòdul sys proporciona funcions i variables que s'utilitzen per manipular diferents parts de l'entorn d'execució de Python. Aquest mòdul proporciona accés a algunes variables utilitzades o mantingudes per l'intèrpret i a funcions que interactuen fortament amb l'intèrpret.
Una d'aquestes variables és sys.argv, que és una estructura de llista simple. El seu propòsit principal són:



  • És una llista d'arguments de línia d'ordres.
  • len(sys.argv) proporciona el nombre d'arguments de línia d'ordres.
  • sys.argv[0] és el nom de l'script de Python actual.

Exemple: Suposem que hi ha un script de Python per afegir dos números i els números es passen com a arguments de línia d'ordres.

Python 3








# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n>=> len>(sys.argv)> print>(>'Total arguments passed:'>, n)> # Arguments passed> print>(>' Name of Python script:'>, sys.argv[>0>])> print>(>' Arguments passed:'>, end>=> ' '>)> for> i>in> range>(>1>, n):> >print>(sys.argv[i], end>=> ' '>)> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i>in> range>(>1>, n):> >Sum> +>=> int>(sys.argv[i])> > print>(>' Result:'>,>Sum>)>

>

>

Sortida:

arguments de la línia d'ordres de python

Utilitzant el mòdul getopt

Python mòdul getopt és similar a la funció getopt() de C. A diferència del mòdul sys, el mòdul getopt amplia la separació de la cadena d'entrada mitjançant la validació de paràmetres. Permet tant opcions curtes com llargues, inclosa una assignació de valor. Tanmateix, aquest mòdul requereix l'ús del mòdul sys per processar les dades d'entrada correctament. Per utilitzar el mòdul getopt, cal eliminar el primer element de la llista d'arguments de la línia d'ordres.

Sintaxi: getopt.getopt(args, opcions, [opcions_llargues])
Paràmetres:
arguments: Llista d'arguments a passar.
opcions: Cadena de lletres d'opció que l'script vol reconèixer. Les opcions que requereixen un argument han d'anar seguides de dos punts (:).
opcions_llargues: Llista de cadena amb el nom de les opcions llargues. Les opcions que requereixen arguments han d'anar seguides d'un signe igual (=).
Tipus de retorn: Retorna un valor format per dos elements: el primer és una llista de parells (opció, valor). El segon és la llista d'arguments del programa que queden després de l'eliminació de la llista d'opcions.

for loop a bash

Exemple:

Python 3




# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList>=> sys.argv[>1>:]> # Options> options>=> 'hmo:'> # Long options> long_options>=> [>'Help'>,>'My_file'>,>'Output='>]> try>:> ># Parsing argument> >arguments, values>=> getopt.getopt(argumentList, options, long_options)> > ># checking each argument> >for> currentArgument, currentValue>in> arguments:> >if> currentArgument>in> (>'-h'>,>'--Help'>):> >print> (>'Displaying Help'>)> > >elif> currentArgument>in> (>'-m'>,>'--My_file'>):> >print> (>'Displaying file_name:'>, sys.argv[>0>])> > >elif> currentArgument>in> (>'-o'>,>'--Output'>):> >print> ((>'Enabling special output mode (% s)'>)>%> (currentValue))> > except> getopt.error as err:> ># output error, and return with an error code> >print> (>str>(err))>

>

data java ara

>

Sortida:

arguments de la línia d'ordres de python

Utilitzant el mòdul argparse

L'ús del mòdul argparse és una opció millor que les dues opcions anteriors, ja que ofereix moltes opcions com ara arguments posicionals, valor predeterminat per als arguments, missatge d'ajuda, especificació del tipus de dades d'argument, etc.

Nota: Com a argument opcional predeterminat, inclou -h, juntament amb la seva versió llarga -help.

Exemple 1: Ús bàsic del mòdul argparse.

Python 3




# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> parser.parse_args()>

>

>

Sortida:

arguments de la línia d'ordres de python


Exemple 2: Afegint una descripció al missatge d'ajuda.

Python 3




# Python program to demonstrate> # command line arguments> import> argparse> msg>=> 'Adding description'> # Initialize parser> parser>=> argparse.ArgumentParser(description>=> msg)> parser.parse_args()>

>

k algorisme de agrupació

>

Sortida:

arguments de la línia d'ordres de python


Exemple 3: Definició del valor opcional

Python 3




# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(>'-o'>,>'--Output'>,>help> => 'Show Output'>)> # Read arguments from command line> args>=> parser.parse_args()> if> args.Output:> >print>(>'Displaying Output as: % s'> %> args.Output)>

>

>

Sortida:

arguments de la línia d'ordres de python