Python getopt modülü hakkında bilgi

Başlatan utopyada, 11 Aralık 2012 - 10:25:26

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

utopyada

getopt modülünü anlatabilir misiniz ?

cagriemer

Python hakkinda bilgi sahibi oldugumdan degil soru yanitsiz kalmasin diye bir iki sey paylasayim.

Ornegin asagidaki komutu dusunun.

cut -d ":" -f1,6 -s --output-delimiter=" --> " /etc/passwd

cut isimli komuta -d, -f, -s, --output-delimiter diye 4 opsiyon ve bir de /etc/passwd diye arguman verdik. cut'in ne yapacagini bu opsiyonlar ile, ne uzerinde yapacagini da argumani ile tanimladik. Simdi siz de bir python programini yazdiginizi dusunun. Komut satirindan ./program -h yazilinca yardim metinini basmak istediginizde bir sekilde programin -h ile baslatildigini algilamaniz gerekiyor. Iste getopt yukaridaki cut ornegindeki gibi gorece karmasik islemler icin bu isi kolaylastiriyor. Size opsiyon ve arguman listesini ayirip veriyor ki gelen bu seceneklere gore programinizin davranisini degistirebilin.

Ornekler icin; http://docs.python.org/2/library/getopt.html

monthy_python

elimi verdim, kolumu alamadım diye düşünmezseniz:

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59
cut -d ":" -f1,6 -s --output-delimiter=" --> " /etc/passwd

cut isimli komuta -d, -f, -s, --output-delimiter diye 4 opsiyon ve bir de /etc/passwd diye arguman verdik. cut'in ne yapacagini bu opsiyonlar ile, ne uzerinde yapacagini da argumani ile tanimladik. Simdi siz de bir python programini yazdiginizi dusunun.

"cut" komutu (kesmek herhalde) tek tireli "d", "-f1,6", "s" ve ":" parametrelerini,
--output-delimiter (her ne yapıyorsa)
-->/etc/passwd ( bildiğim kadarıyla bu /etc/passwd altına bir txt dosyası kaydediyor

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59. Simdi siz de bir python programini yazdiginizi dusunun.

basit bi kod diyelim benim kod (genelde olduğu gibi)
diyelim hesap makinesi.

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59Komut satirindan ./program -h yazilinca yardim metinini basmak istediginizde bir sekilde programin -h ile baslatildigini algilamaniz gerekiyor.

algıladım, ok

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59Iste getopt yukaridaki cut ornegindeki gibi gorece karmasik islemler icin bu isi kolaylastiriyor. Size opsiyon ve arguman listesini ayirip veriyor ki gelen bu seceneklere gore programinizin davranisini degistirebilin.

opsiyon ve argüman listesi normalde birbirine mi girmiş? olayı bu mu bunun? bunu mu ayırıyor?

biz bu yüzden korkuyoruz UGT den
sem 9000 katılmak istemiyorsunuz herhalde demişti. değil.
kendimizi yetersiz gördüğümüzden.

@cagriemer belki sanırsınız ki yerdim iletinizi. alakası yok. baştan "python bilmem yardımcı olayım" tavrınızın farkındayım.
bilmek ve öğretebilmek çok farklı biliyorum.
çıkıntılık/trollük için yazmadım bunları, biraz korkuyorum o damgayı yerim diye.
çok da değil ama. umrumda değil gibi de..
ya da umrumda, bilmiyorum

düşündüğümü yazdım.
en başta ilgilenip cevap yazan cagrıemer i kızdırdıysam üzülücem.
put your best behavior here=
getopt=stay yourself



ct

Alıntı yapılan: monthy_python - 13 Aralık 2012 - 11:21:08
elimi verdim, kolumu alamadım diye düşünmezseniz:

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59
cut -d ":" -f1,6 -s --output-delimiter=" --> " /etc/passwd

cut isimli komuta -d, -f, -s, --output-delimiter diye 4 opsiyon ve bir de /etc/passwd diye arguman verdik. cut'in ne yapacagini bu opsiyonlar ile, ne uzerinde yapacagini da argumani ile tanimladik. Simdi siz de bir python programini yazdiginizi dusunun.

"cut" komutu (kesmek herhalde) tek tireli "d", "-f1,6", "s" ve ":" parametrelerini,
--output-delimiter (her ne yapıyorsa)
-->/etc/passwd ( bildiğim kadarıyla bu /etc/passwd altına bir txt dosyası kaydediyor

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59. Simdi siz de bir python programini yazdiginizi dusunun.

basit bi kod diyelim benim kod (genelde olduğu gibi)
diyelim hesap makinesi.

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59Komut satirindan ./program -h yazilinca yardim metinini basmak istediginizde bir sekilde programin -h ile baslatildigini algilamaniz gerekiyor.

algıladım, ok

Alıntı yapılan: cagriemer - 13 Aralık 2012 - 02:45:59Iste getopt yukaridaki cut ornegindeki gibi gorece karmasik islemler icin bu isi kolaylastiriyor. Size opsiyon ve arguman listesini ayirip veriyor ki gelen bu seceneklere gore programinizin davranisini degistirebilin.

opsiyon ve argüman listesi normalde birbirine mi girmiş? olayı bu mu bunun? bunu mu ayırıyor?

biz bu yüzden korkuyoruz UGT den
sem 9000 katılmak istemiyorsunuz herhalde demişti. değil.
kendimizi yetersiz gördüğümüzden.

@cagriemer belki sanırsınız ki yerdim iletinizi. alakası yok. baştan "python bilmem yardımcı olayım" tavrınızın farkındayım.
bilmek ve öğretebilmek çok farklı biliyorum.
çıkıntılık/trollük için yazmadım bunları, biraz korkuyorum o damgayı yerim diye.
çok da değil ama. umrumda değil gibi de..
ya da umrumda, bilmiyorum

düşündüğümü yazdım.
en başta ilgilenip cevap yazan cagrıemer i kızdırdıysam üzülücem.
put your best behavior here=
getopt=stay yourself

"What can I do sometimes?" ile başlayayım :)

Niye böyle bir şey yazdığınızı anlamadım. Ben de bakmıştım başlığa ve python bilmediğim halde @cagrimer'in verdiği dökümana ve stackoverflowdaki bir iki örnek koda bakmıştım. O an cevap vermedim belki kullanan birisi vardır o anlatsın diye, sağolsun daha sonradan @cagrimer cevap vermiş. Kütüphane de komut satırında verilen şeyleri kullanmaya yarıyor. Kendimce uyduruktan bir programlama dili yazarken böyle kütüphaneler olduğunu bilmiyordum. Üşenip o kısımları yazmayıvermiştim. Bu sayede yeni bir kütüphane/modül öğrenmiş oldum. Programlamada uzmanlaşma matematikteki olgunluk gibi zamanla kod yaza yaza benzer problemlere daha hızlı fikir üretebilme gibi bir şey olsa gerek. Neye isyan ettiğinizi anlamadım açıkçası.

cagriemer

Alıntı yapılan: monthy_python - 13 Aralık 2012 - 11:21:08
"cut" komutu (kesmek herhalde) tek tireli "d", "-f1,6", "s" ve ":" parametrelerini,
--output-delimiter (her ne yapıyorsa)
-->/etc/passwd ( bildiğim kadarıyla bu /etc/passwd altına bir txt dosyası kaydediyor

Iste tam da yukarida yazdiginiz sekilde yanlis ayirmalari onlemek icin var. cut komutu -f aliyor ama 1 ve 6 benim tercihim. ayni sekilde -d aliyor ama ":" benim -d'ye gecirilmesini istedigim secenek. " --> " mesela bu ornekte dosyaya yonlendirme yapmiyor cunku --output-delimiter'a verilmis al bak istedigim 1. ve 6. alani arasina bunu koyarak gostereceksin manasina geliyor. Ya da kimi zaman s'te oldugu gibi benden ekstra bir sey beklemiyor. Bu opsiyon/arguman okuma isini kolaylastiriyor getopt.

Python'dan uzaklasiyoruz o yuzden isi burada bir bilene birakiyorum.