Latest web development tutorials

argumentos de linha de comando Python

argumentos de linha de comando Python

Python fornece módulogetopt para obter os argumentos da linha de comando.

$ python test.py arg1 arg2 arg3

Python também pode ser usadono sys.argvSYS para obter os argumentos de linha de comando:

  • sys.argv é uma lista de parâmetros de linha de comando.

  • len (sys.argv) é o número de argumentos de linha de comando.

NOTA: sys.argv [0] indica o nome do script.

Exemplos

código de arquivo test.py é a seguinte:

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

import sys

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

Implementação do código acima, a saída é:

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

módulo getopt

módulo getopt é módulo de processamento dedicado linha de comando parâmetros utilizados para obter as opções de linha de comando e parâmetros, é sys.argv. opção de linha de comando faz com que o programa de parâmetros mais flexíveis. Suporta o modo de opção curta (-) e opções longas modo de (-).

O módulo fornece dois métodos e um manipulador de exceção para analisar os argumentos da linha de comando.

método getopt.getopt

métodos getopt.getopt para a análise de linha de comando lista de parâmetros sintaxe é a seguinte:

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

parâmetros de método:

  • args: Para analisar a lista de argumentos de linha de comando.

  • opções: para definir a seqüência de formato, as opçõesde dois pontos após (:) indica que esta opção deve ter os parâmetros adicionais, sem os dois pontos indica que esta opção não é parâmetros adicionais.

  • long_options: definir o formato da lista,long_options após o sinal de igual (=) disse que, se esta opção for definida, deve haver parâmetros adicionais, ou parâmetros não adicionais.

  • Esse método retorna um valor consiste em dois elementos: o primeiro é o(opção, Valor) tuplas.A segunda é uma lista de parâmetros, incluindo aqueles que não o fazem - ou '-' parâmetro ''.

Outro método é getopt.gnu_getopt, não há muito a fazer aqui descrito.


getopt.GetoptError exceção

não é encontrado na lista de parâmetros ou opções de parâmetro desejado aciona a exceção é vazio.

argumento de exceção é uma cadeia que representa o erro. opções relacionadas mensagem de erro eopt para o atributo msg.

Exemplos

Suponha que criar um script, você pode passar duas linhas para o comando nome do arquivo arquivo de script, enquanto nós usamos uma outra opção para visualizar o script. Use o seguinte script:

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

código de arquivo test.py é a seguinte:

#!/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 '输入的文件为:', inputfile
   print '输出的文件为:', outputfile

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

Implementação do código acima, a saída é:

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

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