Latest web development tutorials

Parámetros de línea de comandos python3

Parámetros de línea de comandos python3

Python proporciona módulogetopt para obtener argumentos de la línea de comandos.

$ python test.py arg1 arg2 arg3

Python también se puede utilizar enel sys.argvsys para obtener argumentos de línea de comando:

  • sys.argv es una lista de parámetros de línea de comandos.

  • len (sys.argv) es el número de argumentos de línea de comandos.

NOTA: sys.argv [0] indica el nombre del script.

Ejemplos

código de archivo test.py es el siguiente:

#!/usr/bin/python3

import sys

print ('参数个数为:', len(sys.argv), '个参数。')
print ('参数列表:', str(sys.argv))

Aplicación del código anterior, la salida es:

$ python3 test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

módulo getopt

módulo getopt es parámetros de línea de comandos del módulo de procesamiento dedicado utilizados para obtener las opciones de línea de comandos y parámetros, es sys.argv. opción de línea de comandos hace que el programa parámetros más flexibles. Soportar el modo de opción corta (-) y las opciones de modo de largos (-).

El módulo proporciona dos métodos y un controlador de excepciones para analizar los argumentos de línea de comandos.

método getopt.getopt

getopt.getopt métodos para el análisis de línea de comandos de sintaxis lista de parámetros es el siguiente:

getopt.getopt(args, options[, long_options])

Los parámetros del método:

  • args: Para analizar la lista de argumentos de línea de comandos.

  • Opciones: para definir la cadena de formato, las opcionesde colon después (:) indica que esta opción debe tener los parámetros adicionales, sin los dos puntos indica que esta opción no está parámetros adicionales.

  • long_options: definir el formato de la lista,long_options después del signo igual (=) dijeron que si se establece esta opción, debe haber parámetros adicionales, o parámetros adicionales no.

  • Este método devuelve un valor consta de dos elementos: el primero es elvalor (opcional), tuplas.La segunda es una lista de parámetros, incluyendo aquellos que no lo hacen - o '-' parámetro ''.

Otro método es getopt.gnu_getopt, no hay mucho que hacer aquí descrito.


getopt.GetoptError excepción

no se encuentra en la lista de parámetros u opciones parámetro deseado desencadena la excepción está vacía.

argumento de excepción es una cadena que representa el error. Mensaje de error opciones relacionadas yoptar por el atributo msg.

Ejemplos

Supongamos que creamos una secuencia de comandos, puede pasar dos líneas para el comando de nombre de archivo archivo de secuencia de comandos, mientras que utilizamos otra opción para ver la secuencia de comandos. Utilice la siguiente secuencia de comandos:

usage: test.py -i <inputfile> -o <outputfile>

código de archivo test.py es el siguiente:

#!/usr/bin/python3

import sys, getopt

def main(argv):
   inputfile = ''
   outputfile = ''
   try:
      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:
      print ('test.py -i <inputfile> -o <outputfile>')
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print ('test.py -i <inputfile> -o <outputfile>')
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
   print ('输入的文件为:', inputfile)
   print ('输出的文件为:', outputfile)

if __name__ == "__main__":
   main(sys.argv[1:])

Aplicación del código anterior, la salida es:

$ python3 test.py -h
usage: test.py -i <inputfile> -o <outputfile>

$ python3 test.py -i inputfile -o outputfile
输入的文件为: inputfile
输出的文件为: outputfile