Argümanları bir Python betiğine geçirmek mümkün müdür?


17

Argümanları bir kabuk betiğine nasıl aktaracağımı biliyorum. Bu argümanlar AWS veri hattında bildirilir ve aktarılır. Kabuk betiği şöyle görünecektir:

firstarg=$1
secondarg=$2

Bunu Python'da nasıl yapabilirim? Tam olarak aynı mı?


Sormadan önce aramayı denedin mi? Google'da python komut dosyasına argümanlar iletmek için arama yapmak , ihtiyacınız olan tüm bilgileri getirir. 4. bağlantı olarak Stackoverflow Python komut satırı bağımsız değişkenleri sorusunu aldım .
Piotr Dobrogost

3
Piton komut argümanlar geçirilmesi için google aranıyor getiren bu yazı.
Davide Andrea

Yanıtlar:


31

Bu benim için çalıştı:

import sys
firstarg=sys.argv[1]
secondarg=sys.argv[2]
thirdarg=sys.argv[3]

Evet, işe yarıyor. Nedense, indeksleme 0'da başlamaz. Yani sys.argv[0]hiçbir şeye eşit değildir
52 kodlaması

14
argv[0]senaryo adı olmalı
Peter Gerhat

3

Sys'den argv kullanabilirsiniz

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

Aslında komut satırına abitrary sayıda bağımsız değişken koyabilirsiniz. argv, bağımsız değişkenleri içeren bir liste olacaktır. Böylece arg1 = sys.argv [0] arg2 = sys.argv [1] olarak da adlandırılabilir. . .

Ayrıca sys.argv [0] 'un basitçe python programınızın adı olduğunu unutmayın. Ayrıca, komut satırı girdisini kullandığınızda "eval" ve "exec" işlevleri iyi. Genellikle, komut satırındaki her şey bir dize olarak yorumlanır. Yani, komut satırında bir formül vermek istiyorsanız eval () kullanırsınız.

>>> x = 1
>>> print eval('x+1')
2

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

1
Bunu sample.py dosyasına girmeli ve parametre ile çağırmalısınız.
ArunSK

ArunSK, yorumunuzu eklemek için cevabınızı düzenleyebilirsiniz. :)
James Skemp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.