É 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?


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]

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

0
import sys
print("Script name ", sys.argv[0])
print(first arsys.argv[1])

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.