Python'da komut satırındaki argümanlar nasıl ayrıştırılır

How Parse Arguments Command Line Python



Komut satırı argümanları, programın yürütülmesi sırasında programdaki verileri iletmek için kullanılır. Bu özellik, popüler programlama dillerinin çoğunda mevcuttur. Ancak komut satırı argümanlarının işlenmesi farklı diller için farklıdır. Argüman değerleri, programın çalıştırıldığı sırada program adıyla birlikte verilir. Python dili bu özelliği desteklemektedir. Python betiğinde komut satırı bağımsız değişkenlerinin nasıl ayrıştırıldığı bu makalede gösterilmektedir.

Komut satırı argümanını kullanarak ayrıştırma sistem modül

Komut satırı bağımsız değişkenleri, kullanılarak bir listede saklanır. sistem modül. sys.argv komut satırı argümanlarının değerlerini okumak için kullanılır. Komut satırı bağımsız değişkenlerinin toplam sayısı kullanılarak sayılabilir. uzun () işlev. Bu modülün kullanımı makalenin bölümünde açıklanmıştır.







Örnek 1: Argüman sayısını ve argüman değerlerini okuma

Aşağıdaki python betiğiyle bir dosya oluşturun. Burada komut satırı argüman değerleri değişkende saklanır, bağımsız değişken diğer diller gibi. uzun () method, betiğin çalıştırılması sırasında geçirilen toplam argüman sayısını sayar. Argüman değerleri, betiğin sonunda bir dizi olarak yazdırılır.



# Sistem modülünü içe aktar
içe aktarmak sistem

# Toplam argüman sayısını yazdır
Yazdır('Toplam argümanlar:', uzun(sistem.bağımsız değişken))
Yazdır('Argüman değerleri şunlardır:', P(sistem.bağımsız değişken))

Çıktı:



Yukarıdaki komut dosyası burada dört komut satırı argümanı kullanılarak yürütülür. İlk argüman komut dosyası adıdır ve diğerleri sayısal değerlerdir. Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir.





Örnek 2: Döngüyü kullanarak argüman değerlerini okuma



Önceki örnekte, bağımsız değişken değerleri bir dizi olarak yazdırılır. Argüman değişkeninin türünü yazdırmak için aşağıdaki komut dosyasıyla bir dosya oluşturun ve for döngüsünü kullanarak her satırdaki her bir argüman değerini yazdırın.

# Sistem modülünü içe aktar
içe aktarmak sistem

# sys.argv değişkeninin türünü yazdırın
Yazdır(tip(sistem.bağımsız değişken))

# Her komut satırı argümanını her satıra yazdır
Yazdır('Komut satırı argümanları şunlardır:')
içinbeniçinde sistem.bağımsız değişken:
Yazdır(ben)

Çıktı:

Yukarıdaki komut dosyası, komut dosyası adıyla üç bağımsız değişken sağlanarak yürütülür. Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

getopt modülünü kullanarak komut satırı argümanını ayrıştırma

tepesi modülü, seçeneklerle komut satırı argümanlarını ayrıştırmak için kullanılır. tepesinde () Bu modülün yöntemi argümanları okumak için kullanılır. Bu yöntemin üç argümanı vardır. İlk iki argüman zorunludur ve son argüman isteğe bağlıdır. Bu argümanların kullanımları aşağıda verilmiştir.

argümanlar: Komut satırı argümanından alınan argümanı içerir.

kısa_seçenek: Argümanla geçen herhangi bir harf olabilir.

long_option: İki parçalı uzun seçenekleri tanımlamak için kullanılır. Bunlar seçenek adı ve seçenek değeridir.

Sözdizimi: getopt.getopt(args, short_option, [long_option])

Örnek 3: Kısa getopt seçeneklerini kullanarak argüman değerlerini okuma

tepesinde modül daha fazla özellik içerir sistem modül. Aşağıdaki örnek, kısa seçeneklerin nasıl kullanılabileceğini gösterir. tepesinde () yöntem. bağımsız değişken değişken, komut dosyası adını atlayarak komut satırı bağımsız değişkenlerini depolar. Daha sonra, iki seçenek tanımlanır tepesinde () çalışma zamanında bağımsız değişkenle kullanılabilecek yöntem. Herhangi bir hata oluşursa, bir hata mesajı görüntülenecektir.

# getopt modülünü içe aktar
içe aktarmak tepesinde

# Sistem modülünü içe aktar
içe aktarmak sistem

# Betik adını atlayarak bağımsız değişken değişkenini depola
bağımsız değişken= sistem.bağımsız değişken[1:]

denemek:
# getopt kısa seçeneklerini tanımlayın
seçenekler,argümanlar= tepesinde.tepesinde(bağımsız değişken, 'x: y:')

# seçenekleri ve argümanı yazdır
Yazdır(seçenekler)
Yazdır(argümanlar)

hariç tepesinde.GetoptError:

# Yanlış seçenek sağlanmışsa hata mesajını yazdırın
Yazdır('Yanlış seçenek sunuldu')

# Komut dosyasını sonlandır
sistem.çıkış(2)

Çıktı:

Komut dosyasını herhangi bir argüman olmadan, argümanları doğru seçeneklerle ve argümanları yanlış seçenekle çalıştırın.

Örnek 4: Kısa ve uzun getopt seçeneklerini kullanarak argüman değerlerini okuma

Bu örnek, hem kısa hem de uzun seçeneklerin bağımsız değişken değerleriyle nasıl kullanılabileceğini gösterir. Ne zaman iki sayı ekleyecek '-ile' veya '-Ekle' bir seçenek olarak kullanılacak ve ' olduğunda iki sayı çıkarılacaktır. -s' veya ' -alt' çalışma zamanında bir seçenek olarak kullanılacaktır.

# getopt modülünü içe aktar
içe aktarmak tepesinde

# Sistem modülünü içe aktar
içe aktarmak sistem

# Betik adını atlayarak bağımsız değişken değişkenini depola
bağımsız değişken= sistem.bağımsız değişken[1:]

# Sonuç değişkenini başlat
sonuç=0

denemek:

# getopt kısa ve uzun seçeneklerini tanımlayın
seçenekler,argümanlar= tepesinde.tepesinde(sistem.bağımsız değişken[1:], 'olarak', ['ekle =','alt='])

# Döngüyü kullanarak her seçeneği okuyun
içintercih,sinirliiçindeseçenekler:
# Seçenek -a veya --add ise toplamı hesaplayın
Eğertercihiçinde ('-ile', '--Ekle'):
sonuç= int(bağımsız değişken[1])+int(bağımsız değişken[2])

# Seçenek -s veya --sub ise çıkarmayı hesaplayın
eliftercihiçinde ('-s', '--alt'):
sonuç= int(bağımsız değişken[1])-int(bağımsız değişken[2])

Yazdır('Sonuç =',sonuç)

hariç tepesinde.GetoptError:

# Yanlış seçenek sağlanmışsa hata mesajını yazdırın
Yazdır('Yanlış seçenek sunuldu')

# Komut dosyasını sonlandır
sistem.çıkış(2)

Çıktı:

Komut dosyasını herhangi bir bağımsız değişken ve seçenek, '-a' seçeneği olan bağımsız değişkenler, '-s' seçeneği olan bağımsız değişkenler ve yanlış seçenekli bağımsız değişkenler olmadan çalıştırın.

argparse modülünü kullanarak komut satırı argümanını ayrıştırma

Argparse modülü, komut satırı argümanlarını okumak için birçok seçenek içerir. Varsayılan argüman değerleri, veri tipi ile argüman, konumsal argümanlar, yardım mesajı vb. bu modül tarafından sağlanabilir.

Örnek 5: argparse kullanarak komut satırı argümanlarını okuma

Aşağıdaki örnek, tartışma komut satırı argümanını okumak için modül. Burada, komut satırı argümanlarını okumak için iki seçenek tanımlanmıştır. Bunlar '-n' veya '–name' ve '-e' veya '–e-posta'. Kullanıcı herhangi bir yanlış argüman sağlarsa, kullanım mesajıyla birlikte bir hata gösterecektir. Kullanıcı, argümanlarla doğru seçenekleri sağlarsa, argüman değerlerini görüntüler. kullanıcı betiği '–help' seçeneği ile çalıştırırsa, betiği çalıştırmak için gerekli mesajı sağlayacaktır.

# argparse modülünü içe aktar
içe aktarmaktartışma

# Sistem modülünü içe aktar
içe aktarmak sistem

# Komut satırı bağımsız değişkenlerini tanımlamak için işlev bildir
tanımokumaSeçenekleri(argümanlar=sistem.bağımsız değişken[1:]):
ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Ayrıştırma komutları listeleri.')
ayrıştırıcı.add_argument('-n', '--isim', Yardım='Adınızı yazın.')
ayrıştırıcı.add_argument('-Ve', '--e-posta', Yardım='E-postanızı yazın.')
tercih= ayrıştırıcı.parse_args(argümanlar)
dönüştercih

# Argüman değerlerini okumak için işlevi çağırın
seçenekler=okumaSeçenekleri(sistem.bağımsız değişken[1:])
Yazdır(seçenekler.isim)
Yazdır(seçenekler.e-posta)

Çıktı:

Komut dosyasını yanlış seçenek, doğru seçenek ve yardım seçeneği ile çalıştırın.

Çözüm:

Bu öğreticide, üç python modülü kullanılarak komut satırı argümanlarını okumanın çeşitli yolları açıklanmıştır. Umarım bu eğitim, python'da komut satırı argümanlarını kullanarak veri okumak isteyen kodlayıcıya yardımcı olur.

Yazarın Videosunu İzle: Burada