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?


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]

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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.