web-dev-qa-db-fra.com

Comment passer des arguments à des fonctions lors de l'exécution d'un script python à partir d'un terminal?

J'ai un fichier python nommé solution.py et je peux l'exécuter avec succès via le terminal à l'aide des commandes suivantes:

chmod +x solution.py
python3 solution.py

Cela fonctionne très bien si j'ai des phrases simples à imprimer, etc.

Que dois-je faire si j'ai défini une fonction dans solution.py et que je veux l'appeler avec les paramètres que je veux directement depuis le terminal? Comment passer les arguments à l'appel de fonction?

4
user253956

Vous pouvez également utiliser le module sys . Voici un exemple :

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 __== "__main__":
    greetings()
    greetings("Bonjour", "monde")

Il a le comportement que vous recherchez:

$ python parse_args.py Hello world
Hello world
Bonjour monde
16
Buddyshot

Python fournit plus d’un moyen d’analyser les arguments. Le meilleur choix consiste à utiliser le module argparse , qui comporte de nombreuses fonctionnalités que vous pouvez utiliser.

Vous devez donc analyser les arguments dans votre code et essayer d'attraper et de récupérer les arguments dans votre code.

Vous ne pouvez pas simplement passer des arguments par le terminal sans les analyser à partir de votre code.

1
Maythux