Como passar argumentos para funções durante a execução de um script python do terminal?

4

Eu tenho um arquivo python chamado solution.py e posso executá-lo com sucesso através do terminal usando os seguintes comandos:

chmod +x solution.py
python3 solution.py

Isso funciona bem se eu tiver frases de impressão simples e assim por diante.

O que devo fazer se eu tiver definido uma função em solution.py e eu quiser chamá-la com parâmetros que eu quero diretamente do terminal? Como eu passo os argumentos para a chamada de função?

    
por user253956 06.03.2014 / 08:33

2 respostas

15

Você também pode usar o módulo sys . Aqui está um exemplo:

import sys

first_arg = sys.argv[1]
second_arg = sys.argv[2]

def greetings(word1=first_arg, word2=second_arg):
    print("{} {}".format(word1, word2))

if __name__ == "__main__":
    greetings()
    greetings("Bonjour", "monde")

Tem o comportamento que você está procurando:

$ python parse_args.py Hello world
Hello world
Bonjour monde
    
por Buddyshot 06.03.2014 / 14:56
1

O Python fornece mais de uma maneira de analisar argumentos. A melhor opção é usar o módulo argparse , que tem muitos recursos que você pode usar .

Então você tem que analisar argumentos em seu código e tentar pegar e buscar os argumentos dentro de seu código.

Você não pode simplesmente passar argumentos pelo terminal sem analisá-los do seu código.

    
por Maythux 06.03.2014 / 08:39