Czy można przekazać argumenty do skryptu Python?

17

Wiem, jak przekazywać argumenty do skryptu powłoki. Argumenty te są deklarowane w linii danych AWS i przekazywane. Tak wyglądałby skrypt powłoki:

firstarg=$1
secondarg=$2

Jak to zrobić w Pythonie? Czy to dokładnie to samo?

uproszczenie
źródło
Czy próbowałeś szukać, zanim zapytałeś? Przeszukiwanie google w celu przekazania argumentów do skryptu python zapewnia wszystkie potrzebne informacje. Jako czwarty link dostałem pytanie Argumenty wiersza poleceń w Pythonie z Stackoverflow.
Piotr Dobrogost
3
Przeszukiwanie google pod kątem przekazywania argumentów do skryptu python przynosi ten post.
Davide Andrea,

Odpowiedzi:

31

To działało dla mnie:

import sys
firstarg=sys.argv[1]
secondarg=sys.argv[2]
thirdarg=sys.argv[3]
Peter Gerhat
źródło
Tak, to działa. Z jakiegoś powodu indeksowanie nie zaczyna się od 0. Więc sys.argv[0]jest równe nic
uproszczony kod
14
argv[0]powinna być nazwa skryptu
Peter Gerhat,
3

Możesz użyć argv z sys

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

W wierszu komend można w rzeczywistości podać liczbę argumentów niepoprawną. argv będzie listą z argumentami. Dlatego można go również wywołać jako arg1 = sys.argv [0] arg2 = sys.argv [1]. . .

Pamiętaj również, że sys.argv [0] to po prostu nazwa twojego programu python. Ponadto funkcje „eval” i „exec” są przydatne, gdy używasz wprowadzania z wiersza poleceń. Zwykle wszystko w wierszu poleceń jest interpretowane jako ciąg znaków. Tak więc, jeśli chcesz podać formułę w wierszu poleceń, użyj eval ().

>>> x = 1
>>> print eval('x+1')
2
F. Ha
źródło
0
import sys
print("Script name ", sys.argv[0])
print(first arsys.argv[1])
ArunSK
źródło
1
Powinieneś wpisać to w sample.py i wywołać z parametrem.
ArunSK
ArunSK, możesz edytować swoją odpowiedź, aby dodać komentarz. :)
James Skemp