index out of range? [fechadas]

0
# load parameters file

yml = yaml.load(open(sys.argv[1]))
# imports 

for pkg, functions in yml['imports'].iteritems():   
    stri = 'from ' + pkg + ' import ' + ','.join(functions)
    exec(stri)

para o código acima, recebo um erro

IndexError: list index out of range

na linha 2..alguém pode me ajudar?

    
por Sunu A 27.04.2015 / 07:38

1 resposta

3

A linha:

yml = yaml.load(open(sys.argv[1]))

... assume que você passa o valor, para ser usado na linha, como um argumento quando você chama o script:

<script> <argument>

mas provavelmente você acabou de executar o script sem nenhum argumento.

Os argumentos são listados , onde o comando para chamar o script é o primeiro item da lista (o primeiro item é índice 0).

[<script>, <sys.argv[1]>, <sys.argv[2]>]

Como você executa o script apenas com o comando ( sys.argv[0] ), sys.argv[1] está se referindo a um item (list-) que não existe, gerando um IndexError .

    
por Jacob Vlijm 27.04.2015 / 07:49