Python Argument Parser Kullanımı

Python’da argument parser ile terminal üzerinden yazdığımız kodlara inputlar verebiliriz. Bunun ne kadar fazla avantajı olduğunu kullanmaya başladıktan sonra göreceksiniz. Argument parser kodumuzu değiştirmeden programımıza anında farklı girdiler vermemizi sağlar. Sürekli script üstünde bir dosyanın yolunu göstermek için değişiklik yapmanıza gerek kalmayacak. Argümanlarınızı terminal üzerinden verip keyfinize bakacaksınız.

İlk Adım

Öncelikle python kodumuza kütüphaneyi eklememiz gerekiyor. Bunun için aşağıdaki gibi import ediyoruz.

import argparse

Kütüphane mevcut degilse;

pip install arparse

ile kütüphanemizi yüklüyoruz.

Argümanımızı yapılandıracağız ve daha sonra çözümleyeceğiz. “ap” olarak argumentparserimizi yapılandırıyoruz.

ap = argparse.ArgumentParser()

Çözümlemek için kodumuz burada “–sayı” ifadesini terminal üzerinde de aynı şekilde yazıp yanına değer vereceğiz. -s ifadesi ile de aynı işlemi yapabiliriz birisi kısa birisi uzun ifade şekilleri.

ap.add_argument("-s", "--sayi", required=True,help="sayi giriniz")

required kısmı bunun gerekli bir argüman olup olmadığını belirtiyor eğer True yaparsanız bu değer girilmeden program başlamıyacaktır.help kısmına ise kullanıcının buraya nasıl bir değer girmesi gerektiğini terminal ekranına print ettirmemizi sağlayacak. Argument parser içeren her kod help kısmı içermeli çünkü kimse kodlarınızı didik didik etmek zorunda değil. Terminale –help yazdıgında nasıl bir deger girmesi gerektigini anlayacaktır.

Kullanıcının girdiği değeri programımız içinde args[“sayi”] olarak her yerde kullanabiliriz.

args = vars(ap.parse_args())

ve tüm değerleri parçalayalım yani args içerisine atıyoruz.Dizi nin “sayi” isimli değerini çekiyoruz yani args[“”sayi”] bu demek.

print(“Girdiginiz sayi {} .”.format(args[“sayi”]))

Sonucu görmek kısaca bir print edelim. Terminalde girdiğiniz sayıyı görmüş olmanız gerekiyor.

 

Evet Görüldüğü gibi kullanım mantığı bu şekilde ama bu şekilde bir kullanım çok işlevsiz duruyor. Ben argparser’i genelde dosya yolu göstermek için kullanıyorum.

Mesela görüntü işleme için yazdığınız bir scriptiniz var. Bu scripti başka örnek fotoğraflar üstünde nasıl çalışacağınızı merak ediyorsunuz. Sürekli script içine girerek kopyala yapıştır yapmayın. Aşağıdaki gibi dosyayı okuduğunuz cv2.imread() içersine , argüman parser’ın hangi parçasını dosya yolu belirtmek için kullanıyorsanız onu ekleyin.

Ama ilk önce argüment parserimizi hazırlayalım.

Daha sonra opencv’de dosyayı okuması için kullandığımız ifadenin içine yerleştirelim.

image = cv2.imread(args["image"])

Terminal üzerinden –image ile başlayan ifadeden sonra dosya yolunu belirttiginizde cv2.imread() içerisindeki dosya yolunu terminal yolundan direkt olarak değiştirmiş olacaksınız.

python deneme.py --image images/resim.png

Direkt Kodlar İçin ;

Sonuç Olarak;

Yukarıdaki şekilde terminale komut verdiğimizde tüm script çalışacak. İstediğiniz sayıda argüman alabilirsiniz. Hayal gücünüz kadar degişiklikler yapabilirsiniz. Bunun hem efektif bir çözüm hemde terminal kullanımına bir alışkanlık getirdiğine inanıyorum.

Umarım açıklayıcı bir yazı olmuştur.

İyi günler.

Şu kategoriye gönderildi: Python

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir