Python Komut Dosyasına Komut Satırı Bağımsız Değişkenleri Nasıl Eklenir

How Add Command Line Arguments Python Script



Öncelikle terminal öykünücülerinde ve hatta GUI uygulamalarında çalıştırılması amaçlanan bir Python betiği veya uygulaması geliştirdiyseniz, komut satırı bağımsız değişkenleri eklemek onun kullanılabilirliğini, kod okunabilirliğini, uygulama yapısını ve uygulamanın son kullanıcılar için genel kullanıcı dostu olma özelliğini iyileştirebilir. Bu komut satırı argümanlarına seçenekler veya anahtarlar da denir ve genellikle bash betiklerinde ve diğer C/C++ tabanlı programlarda gördüğünüz argümanlara benzer şekilde çalışır.

Python betiklerine argüman eklemek için argparse adlı yerleşik bir modül kullanmanız gerekecek. Adından da anlaşılacağı gibi, bir Python betiği veya uygulaması başlatılırken kullanılan komut satırı argümanlarını ayrıştırır. Bu ayrıştırılmış argümanlar, uygun tipte olduklarından emin olmak için argparse modülü tarafından da kontrol edilir. Bağımsız değişkenlerde geçersiz değerler varsa hatalar oluşur.







Argparse modülünün kullanımı en iyi örneklerle anlaşılabilir. Aşağıda, argparse modülünü kullanmaya başlamanızı sağlayacak bazı kod örnekleri verilmiştir.



Örnek 1: Yardım Argümanı ve Mesajı Oluşturun

Aşağıdaki kod örneğini göz önünde bulundurun:



içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

argümanlar= ayrıştırıcı.parse_args()

İlk ifade, argparse modülünü içe aktarır. Ardından, yeni bir ArgumentParser nesnesi örneği oluşturulur ve program için bir argüman olarak kısa bir açıklama sağlanır. ArgumentParser nesnesi, komut satırı argüman değerlerini Python tarafından anlaşılan veri türlerine dönüştürmek için gereklidir. Bu, son ifadede gösterildiği gibi ArgumentParser nesnesinin parse_args yöntemiyle yapılır.





Yukarıda belirtilen kod örneğini test.py adlı bir dosyaya kaydettiğinizi varsayarsak, aşağıdaki komutları çalıştırmak size programla ilgili yardım mesajlarını alacaktır.

$ ./Ölçek.p-H

$ ./Ölçek.p-Yardım

Buna benzer bir çıktı almalısınız:



kullanım: test.py [-h]


Bir deneme programı.


isteğe bağlı argümanlar:

-h, --help bu yardım mesajını göster ve çık

Yukarıda bahsedilen kod örneğine, ayrıştırılmış argümanları işlemek ve bunları nesnelere dönüştürmek için hiçbir mantığın eklenmediğini unutmayın. Bu nedenle, bağımsız argümanlar için yardım mesajları çıktıda gösterilmez. Programınıza ayrıştırılmış argümanların değerlerini işlemek için mantık eklediğinizde, yardım mesajları bağımsız argümanlar için açıklama göstermeye başlayacaktır.

Örnek 2: Bir String Argümanını Ele Alın

Python betiğiniz tarafından kabul edilebilir argümanlar eklemek için add_argument yöntemini kullanmanız gerekir. Aşağıdaki koda bir göz atın:

içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

ayrıştırıcı.add_argument('print_string', Yardım='Sağlanan bağımsız değişkeni yazdırır.')

argümanlar= ayrıştırıcı.parse_args()

Yazdır(arg.print_string)

add_argument yönteminin kullanımını gösteren yeni bir ifade eklendi. Betiği başlatırken eklenen herhangi bir argüman, ArgumentParser tarafından bir print_string nesnesi olarak ele alınacaktır.

Varsayılan olarak, add_argument yönteminin bağımsız değişkenlerden alınan değerleri dizeler olarak ele aldığını, dolayısıyla bu durumda türü açıkça belirtmeniz gerekmediğini unutmayın. Geçersiz kılınmadıkça, eklenen bağımsız değişkenlere de varsayılan bir Yok değeri atanır.

Yardım mesajına bir kez daha bakın:

kullanım: test.py [-h] [print_string]


Bir deneme programı.


konumsal argümanlar:

print_string Sağlanan bağımsız değişkeni yazdırır.


isteğe bağlı argümanlar:

-h, --help bu yardım mesajını göster ve çık

Çıktıdaki satırlardan biri konumsal argümanlar diyor. Argüman için hiçbir anahtar sözcük tanımlanmadığından, şu anda argüman, sağlanan argümanın sırasının ve konumunun program üzerinde doğrudan etkisinin olduğu bir konumsal argüman olarak ele alınmaktadır. Davranışlarını manuel olarak değiştirmediğiniz sürece, konumsal bağımsız değişkenler de zorunludur.

İsteğe bağlı bağımsız değişkenleri tanımlamak ve ayrıştırmak için – (çift tire) kullanabilir ve varsayılan bağımsız değişkeni kullanarak varsayılan değerlerini değiştirebilirsiniz.

içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

ayrıştırıcı.add_argument('--print_string', Yardım='Sağlanan bağımsız değişkeni yazdırır.',varsayılan=İLErastgele sicim.)

argümanlar= ayrıştırıcı.parse_args()

Yazdır(arg.print_string)

Şimdi test.py betiğini herhangi bir argüman olmadan çalıştırdığınızda, rastgele bir dize almalısınız. çıktı olarak. İsteğe bağlı olarak, istediğiniz herhangi bir dizeyi yazdırmak için –print_string anahtar sözcüğünü de kullanabilirsiniz.

$ ./Ölçek.p--print_string LinuxHint.ile birlikteLinuxHint.com

Ek bir zorunlu=True bağımsız değişkeni kullanarak isteğe bağlı bir bağımsız değişkeni zorunlu hale getirebileceğinizi unutmayın.

Son olarak, ayrıntı düzeyini azaltmak için - (tek tire) kullanarak bağımsız değişkenin stenografi sürümlerini de tanımlayabilirsiniz.

içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

ayrıştırıcı.add_argument(-P, '--print_string', Yardım='Sağlanan bağımsız değişkeni yazdırır.',varsayılan=İLErastgele sicim.)

argümanlar= ayrıştırıcı.parse_args()

Yazdır(arg.print_string)

Aşağıdaki komutu çalıştırmak size yukarıdakiyle aynı sonucu vermelidir:

$ ./Ölçek.p-p Linuxİpucu.ile birlikte

Örnek 3: Bir Tamsayı Argümanını Ele Alın

Tamsayı değerlerine ihtiyaç duyan bağımsız değişkenleri işlemek için, koşulun karşılanmaması durumunda doğrulama ve atma hatalarına izin vermek için type anahtar sözcüğünü int olarak ayarlamanız gerekir.

içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

ayrıştırıcı.add_argument('-P', '--print_string', Yardım='Sağlanan bağımsız değişkeni yazdırır.', tip=int)

argümanlar= ayrıştırıcı.parse_args()

Yazdır(arg.print_string)

Aşağıdaki komutu çalıştırmayı deneyin:

$ ./Ölçek.p-p Linuxİpucu.ile birlikte

Bunun gibi bir hata almalısınız:

kullanım: test.py [-h] [-p PRINT_STRING]

test.py: hata: argüman -p/--print_string: geçersiz int değeri: 'LinuxHint.com'

Bir tamsayı değeri sağlamak size doğru sonucu verecektir:

$ ./Ölçek.p-P10001000

Örnek 4: Doğru ve Yanlış Geçişleri İşleme

Eylem bağımsız değişkenini kullanarak onları Doğru ve Yanlış bayrakları olarak değerlendirmek için herhangi bir değer olmadan bağımsız değişkenler iletebilirsiniz.

içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

ayrıştırıcı.add_argument('-P', '--print_string', Yardım='Sağlanan bağımsız değişkeni yazdırır.',eylem='store_true')

argümanlar= ayrıştırıcı.parse_args()

Yazdır(arg.print_string)

Çıktı olarak basit bir True elde etmek için aşağıdaki komutu çalıştırın:

$ ./Ölçek.p-P

Komut dosyasını -p bağımsız değişkeni olmadan çalıştırırsanız, bunun yerine bir False değeri atanır. action anahtar sözcüğünün store_true değeri, -p bağımsız değişkeni açıkça belirtildiğinde print_string değişkenine bir True değeri atar, aksi takdirde değişkene False atanır.

Örnek 5: Argüman Değerlerini Liste Olarak Değerlendirin

Aynı anda birden fazla değer elde etmek ve bunları listede saklamak istiyorsanız, nargs anahtar sözcüğünü aşağıdaki biçimde sağlamanız gerekir:

içe aktarmaktartışma

ayrıştırıcı =argparse.ArgümanAyrıştırıcı(tanım='Bir test programı.')

ayrıştırıcı.add_argument('-P', '--print_string', Yardım='Sağlanan bağımsız değişkeni yazdırır.',nargile='*')

argümanlar= ayrıştırıcı.parse_args()

Yazdır(arg.print_string)

Yukarıdaki kodu test etmek için aşağıdaki komutu çalıştırın:

$ ./Ölçek.p-p bir b

Bunun gibi bir çıktı almalısınız:

['a', 'b']

Çözüm

Argparse modülü, komut satırı uygulamalarının davranışını değiştirmek ve kullanıcı tarafından sağlanan değerleri ayrıştırmak için tonlarca seçenek ile oldukça kapsamlıdır. Bu örnekler, yalnızca argparse modülünün temel kullanımına değinmektedir. Gelişmiş ve karmaşık uygulamalar için farklı uygulamalara ihtiyacınız olabilir. ziyaret edin resmi belgeler Modülün tam açıklaması için.