Argumentos de línea de comandos 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
# -*- 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
# -*- 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 输出的文件为: outputfileOtras extensiones
Sintaxis básica de Python