Ist es möglich, Argumente in ein Python-Skript zu übergeben?

16

Ich weiß, wie man Argumente in ein Shell-Skript übergibt. Diese Argumente werden in der AWS-Datenpipeline deklariert und übergeben. So würde ein Shell-Skript aussehen:

firstarg=$1
secondarg=$2

Wie mache ich das in Python? Ist es genau das gleiche?

einfachcodieren
quelle
Haben Sie versucht zu suchen, bevor Sie gefragt haben? Wenn Sie in Google nach Argumenten suchen, die an Python- Skripte übergeben werden, erhalten Sie alle erforderlichen Informationen. Als 4. Link habe ich die Frage Kommandozeilenargumente in Python von Stackoverflow bekommen.
Piotr Dobrogost
3
Das Durchsuchen von Google nach Argumenten für Python-Skripte bringt diesen Beitrag.
Davide Andrea

Antworten:

29

Das hat bei mir funktioniert:

import sys
firstarg=sys.argv[1]
secondarg=sys.argv[2]
thirdarg=sys.argv[3]
Peter Gerhat
quelle
Ja, das funktioniert. Aus irgendeinem Grund beginnt die Indizierung nicht bei 0. sys.argv[0]
Ist
14
argv[0]sollte der
Skriptname sein
3

Sie können das Argument von sys verwenden

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

Sie können tatsächlich eine beliebige Anzahl von Argumenten in die Befehlszeile eingeben. argv ist eine Liste mit den Argumenten. Daher kann es auch als arg1 = sys.argv [0] arg2 = sys.argv [1] bezeichnet werden. . .

Denken Sie auch daran, dass sys.argv [0] einfach der Name Ihres Python-Programms ist. Außerdem sind die Funktionen "eval" und "exec" hilfreich, wenn Sie die Befehlszeileneingabe verwenden. Normalerweise wird alles in der Befehlszeile als Zeichenfolge interpretiert. Wenn Sie also eine Formel in der Befehlszeile angeben möchten, verwenden Sie eval ().

>>> x = 1
>>> print eval('x+1')
2
F. Ha
quelle
0
import sys
print("Script name ", sys.argv[0])
print(first arsys.argv[1])
ArunSK
quelle
1
Sie sollten dies in sample.py eintragen und mit parameter aufrufen.
ArunSK
ArunSK, Sie können Ihre Antwort so bearbeiten, dass sie Ihren Kommentar enthält. :)
James Skemp