Argumentos de línea de comandos de Python

Python 基础语法Sintaxis básica de Python

Python proporcionagetoptmódulo para obtener los argumentos de la línea de comandos.

$ python test.py arg1 arg2 arg3

En Python también se puede usarsysdesys.argvpara obtener los argumentos de la línea de comandos:

  • sys.argv es la lista de argumentos de la línea de comandos.

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

Nota:sys.argv

Ejemplos

El código del archivo test.py es el siguiente:

Ejemplos

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print 'El número de argumentos es:', len(sys.argv), 'argumentos.'
print 'Lista de argumentos:', str(sys.argv)

Al ejecutar el código anterior, el resultado es:

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

Módulo getopt

El módulo getopt es un módulo especialmente diseñado para manejar los argumentos de la línea de comandos, utilizado para obtener las opciones y parámetros de la línea de comandos, es decir, sys.argv. Las opciones de la línea de comandos hacen que los parámetros del programa sean más flexibles. Admite el modo de opciones cortas-y el modo de opciones largas--。

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

Método getopt.getopt

El método getopt.getopt se utiliza para analizar la lista de argumentos de la línea de comandos, el formato de sintaxis es el siguiente:

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

Descripción de los parámetros del método:

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

  • options: se define en formato de cadena,optionslos dos puntos posteriores:indica que si se establece esta opción, debe haber argumentos adicionales; de lo contrario, no se añaden argumentos.

  • long_options: se define en formato de lista,long_optionsel signo igual después=indica que esta opción debe tener argumentos adicionales; sin el signo igual significa que la opción no tiene argumentos adicionales.

  • El valor de retorno de este método se compone de dos elementos: el primero es(option, value)una lista de tuplas. El segundo es una lista de argumentos, que contiene aquellos que no tienen-o--los parámetros.

Otro método es getopt.gnu_getopt, que no se explicará en detalle aquí.


Exception getopt.GetoptError

Esta excepción se activa cuando no se encuentra la lista de argumentos, o cuando los argumentos requeridos de una opción están vacíos.

El argumento de la excepción es una cadena que representa la causa del error. El atributomsgyoptes la información de error de la opción relacionada.

Ejemplos

Supongamos que creamos un script de este tipo, que puede pasar dos nombres de archivo al archivo de script a través de la línea de comandos, y también usamos otra opción para ver el uso del script. El modo de uso del script es el siguiente:

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

El código del archivo test.py es el siguiente:

Ejemplos

#!/usr/bin/python
# -*- coding: UTF-8 -*-

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 'El archivo de entrada es:', inputfile
   print 'El archivo de salida es:', outputfile

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

Al ejecutar el código anterior, el resultado es:

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

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

Python 基础语法Sintaxis básica de Python

Otras extensiones