Est-il possible de passer des arguments dans un script Python?

17

Je sais comment passer des arguments dans un script shell. Ces arguments sont déclarés dans la ligne de données AWS et transmis. Voici à quoi ressemblerait un script shell:

firstarg=$1
secondarg=$2

Comment faire cela en Python? Est-ce exactement la même chose?

simplement coder
la source
Avez-vous essayé de chercher avant de demander? La recherche sur Google pour passer des arguments au script python apporte toutes les informations dont vous avez besoin. En tant que quatrième lien, j'ai reçu la question Arguments de ligne de commande en Python de Stackoverflow.
Piotr Dobrogost du
3
La recherche sur Google pour passer des arguments au script python amène ce message.
Davide Andrea

Réponses:

31

Cela a fonctionné pour moi:

import sys
firstarg=sys.argv[1]
secondarg=sys.argv[2]
thirdarg=sys.argv[3]
Peter Gerhat
la source
Oui, ça marche. Pour une raison quelconque, l'indexation ne commence pas à 0. Donc, sys.argv[0]c'est égal à rien
suffit de coder
14
argv[0]devrait être le nom du script
Peter Gerhat
3

Vous pouvez utiliser l'argv de sys

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

Vous pouvez réellement mettre un nombre arbitraire d'arguments dans la ligne de commande. argv sera une liste avec les arguments. Ainsi, il peut également être appelé arg1 = sys.argv [0] arg2 = sys.argv [1]. . .

Gardez également à l'esprit que sys.argv [0] est simplement le nom de votre programme python. De plus, les fonctions "eval" et "exec" sont agréables lorsque vous utilisez une entrée de ligne de commande. Généralement, tout dans la ligne de commande est interprété comme une chaîne. Donc, si vous voulez donner une formule dans la ligne de commande, vous utilisez eval ().

>>> x = 1
>>> print eval('x+1')
2
F. Ha
la source
0
import sys
print("Script name ", sys.argv[0])
print(first arsys.argv[1])
ArunSK
la source
1
Vous devez le saisir dans sample.py et appeler avec le paramètre.
ArunSK
ArunSK, vous pouvez modifier votre réponse pour inclure votre commentaire. :)
James Skemp