[Çözüldü]python parametre

Başlatan marslı, 10 Eylül 2016 - 22:46:20

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

marslı

merhaba arkadaşlar
python ile yazılmış programlarda parametre kullanıyoruz. Mesela program --version yazınca sürüm numarasını veriyor --bilmem-ne yazınca başka bir kod çalışıyor ya, bunu python betiğinde nasıl yapıyoruz? bilen arkadaşlar ufak bir betik verebilir mi bu konu ile ilgili?

LinuxHacisi

Linux And Windows System Specialist , Linux Hacısı, #DevOps #Linux #Windows #SysAdmin #GNU #Researcher

marslı

Kardeşim ingilizce bilsem zaten konuyu açmam :) Upuzun sayfa hangi birini anlayayım ben? 

harun252525

Alıntı yapılan: marslı - 10 Eylül 2016 - 22:53:58
Kardeşim ingilizce bilsem zaten konuyu açmam :) Upuzun sayfa hangi birini anlayayım ben?

import sys

# sys.argv bir listedir ve programa gönderilen parametreleri tutar ilk parametre programın kendi ismi olduğu için listenin 0. elemanında programın kendi ismi yazar yani dosya ismi diğer elamanlarda sizin verdiğiniz parametrelerdir

print "programa verilen parametreler"
for i in sys.argv:
    print i

anlıyamadıysan söyle daha net anlatayım
Kod Yazmak Bir Şiirdir.

marslı

Açıkcası hiç anlamadım. nereye ne yazıyoruz nereye ne ekliyoruz çözemedim. Normal örnek için bir betik yazarsanız daha rahat anlarım diye düşünüyorum

Haoskman

Öncelikle python'da modül kavramını bilmen gerekiyor. Python'da modül kavramını kısaca yapacak olursak; içinde çeşitli fonksiyon ve sınıfları barındıran yerine göre işimizi bir hayli kolaylaştıran hiyerarşik bir yapıya sahip parçacıklardır. Mesela python'da os modülü, random, time, datetime ve sys modülleri genelde birçok programcı tarafından kullanılır. Şimdi senin soruna gelecek olursak.

Bu parametre işini sys modülüne ait argv adlı bir niteliği kullanarak gerçekleştiriyoruz. Örnek bir kod üzerinden daha detaylı anlatayım;


import sys
print("Sürüm Öğrenme Programı")
if len(sys.argv) == 2:
    if sys.argv[1] in ["-V","-v"]:
        print(sys.version)
    else:
        print("Hatalı bir parametre girdiniz")
else
    print("Eksik bir parametre girdiniz")


Bu kodda komut satırında python programadı -v veya -V yazarsan sana versiyon ile ilgili bilgiler verir.
Umarım açıklayıcı olmuştur.

marslı

Tamamdır. Anladım. Teşekkür ederim. 

marslı

@Haoskman arkadaşımın dediği kod çok işime yaradı. Ama aynı konu hakkında bir sorum daha var.
Alıntı Yapif sys.argv[1] in ["-V","-v"]:
dediğim zaman çalışıyor. Ama 
Alıntı Yapif sys.argv[1] in ["help -v]: 
deiğim zaman çalışmıyor.
help -v olarak çalıştırmak istiyorum. Bunu nasıl yapabilirinm?

yazilimci_adam


marslı

Teşekkür ederim ama sys.argv ile yapmak istiyorum. Hem sadece yardım sayfası oluşturmayacağım. 

7hr33l3t73r

#10
Alıntı yapılan: marslı - 21 Ekim 2016 - 13:38:15
@Haoskman arkadaşımın dediği kod çok işime yaradı. Ama aynı konu hakkında bir sorum daha var.
Alıntı Yapif sys.argv[1] in ["-V","-v"]:
dediğim zaman çalışıyor. Ama
Alıntı Yapif sys.argv[1] in ["help -v]:
deiğim zaman çalışmıyor.
help -v olarak çalıştırmak istiyorum. Bunu nasıl yapabilirinm?

import sys
print("Sürüm Öğrenme Programı")
if len(sys.argv) == 3:
    if sys.argv[2] in ["","-V","-v"]:
        print(sys.version)
    else:
        print("Hatalı bir parametre girdiniz")

?
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

marslı

Vay arkadaş demek bu kadar basitmiş :D 
Alıntı Yapif len(sys.argv) == 3:    if sys.argv[2]
2 ve 3 kısmını biraz açar mısınz merak ettim. 

7hr33l3t73r

3 tane argumanim var. Kullanirken  birincisini onemseme ne yazarsam kabul et, benim icin ikincisi onemli :)
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

marslı

Anladım teşekkürler konu kilitlenebilir.