É possível passar argumentos para um script Python?

17

Eu sei como passar argumentos para um script de shell. Esses argumentos são declarados no datapipeline da AWS e transmitidos. É assim que um script de shell se pareceria:

firstarg=$1
secondarg=$2

Como faço isso em Python? É exatamente o mesmo?

codificação simples
fonte
Você já tentou pesquisar antes de perguntar? Pesquisando no google por passar argumentos para o script python, traz todas as informações necessárias. Como o quarto link, recebi a pergunta Argumentos da linha de comando no Python do Stackoverflow.
Piotr Dobrogost
3
Pesquisando no google por passar argumentos para o script python, traz este post.
Davide Andrea

Respostas:

30

Isso funcionou para mim:

import sys
firstarg=sys.argv[1]
secondarg=sys.argv[2]
thirdarg=sys.argv[3]
Peter Gerhat
fonte
Sim, isso funciona. Por alguma razão, a indexação não inicia em 0. Portanto, sys.argv[0]é igual a nada
simplesmente codificando
14
argv[0]deve ser o nome do script
Peter Gerhat
3

Você pode usar o argv do sys

from sys import argv
arg1, arg2, arg3, ... = argv

Na verdade, você pode colocar um número abitrário de argumentos na linha de comando. argv será uma lista com os argumentos. Portanto, também pode ser chamado como arg1 = sys.argv [0] arg2 = sys.argv [1]. . .

Lembre-se também de que sys.argv [0] é simplesmente o nome do seu programa python. Além disso, as funções "eval" e "exec" são boas quando você usa a entrada da linha de comando. Geralmente, tudo na linha de comando é interpretado como uma sequência. Portanto, se você quiser fornecer uma fórmula na linha de comando, use eval ().

>>> x = 1
>>> print eval('x+1')
2
F. Ha
fonte
0
import sys
print("Script name ", sys.argv[0])
print(first arsys.argv[1])
ArunSK
fonte
11
Você deve inserir isso em sample.py e chamar com o parâmetro
ArunSK
ArunSK, você pode editar sua resposta para incluir seu comentário. :)
James Skemp