@PsySc0rpi0n,
Algumas clarificações: em Python as listas declaram-se com [], e as strings tanto podem ser "assim" como 'assim' (pessoalmente, prefiro 'assim', mas é indiferente).
Mas vamos agora ao que interessa:
Bem, tu conseguiste livrar-te de um erro, mas agora apareceu outro: IndexError: list index out of range. Muito provavelmente isso deve-se ao sys.argv[1] que estás a utilizar ali no código -- estavas a invocar o script passando-lhe um argumento? Porque se não estivesses, o erro estaria completamente justificado.
De qualquer modo, e para que não fique incerteza no ar relativamente à forma como as coisas funcionam (que é simples!), ficam aqui dois pequenos scripts que simulam o teu problema facilmente:
#!/usr/bin/python3
# Este será o ficheiro 'rigup'
from sys import argv
print('{} called with arguments {!r}'.format(argv[0], argv[1:]))
#!/usr/bin/python3
# E este será o ficheiro 'test.py'
import sys
import subprocess
feat_codes = [ '0x1c001', '0x1c002', '0x1c004', '0x1c008',
'0x1c020', '0x1c040', '0x1c080', '0x1c0ff' ]
for var in feat_codes:
subprocess.call([ './rigup', 'license', sys.argv[1], var ])
E agora, assumindo que temos estes ficheiros numa directoria psy, aqui fica a transcrição da sessão no terminal:
~/psy $ # Cá estão os ficheiros que criámos
~/psy $ ls -lh
total 8,0K
-rw-rw-r-- 1 apc apc 107 Out 2 12:08 rigup
-rw-rw-r-- 1 apc apc 244 Out 2 11:57 test.py
~/psy $
~/psy $ # Vamos permitir a execução do 'rigup'
~/psy $ chmod +x rigup
~/psy $
~/psy $ # Vamos testar o rigup
~/psy $ ./rigup um dois tres quatro
./rigup called with arguments ['um', 'dois', 'tres', 'quatro']
~/psy $
~/psy $ # E agora vamos executar o test.py sem argumentos adicionais
~/psy $ python3 test.py
Traceback (most recent call last):
File "test.py", line 8, in <module>
call([ './rigup', 'license', argv[1], code ])
IndexError: list index out of range
~/psy $ # ^-- Cá está o erro que obtiveste da última vez
~/psy $
~/psy $ # Mais uma vez, agora com o argumento adicional
~/psy $ python3 test.py argumento-adicional
./rigup called with arguments ['license', 'argumento-adicional', '0x1c001']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c002']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c004']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c008']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c020']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c040']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c080']
./rigup called with arguments ['license', 'argumento-adicional', '0x1c0ff']
~/psy $ # Funcionou.
E é isto.
↧