Jika Anda telah mengembangkan skrip atau aplikasi Python yang dimaksudkan untuk dijalankan terutama di emulator terminal atau bahkan aplikasi GUI, menambahkan argumen baris perintah dapat meningkatkan kegunaannya, keterbacaan kode, struktur aplikasi, dan keramahan pengguna aplikasi secara keseluruhan untuk pengguna akhir. Argumen baris perintah ini juga disebut "opsi" atau "switch" dan bekerja mirip dengan argumen yang biasanya Anda lihat di skrip bash dan program berbasis C / C++ lainnya.
Untuk menambahkan argumen ke skrip Python, Anda harus menggunakan modul bawaan bernama "argparse". Seperti namanya, itu mem-parsing argumen baris perintah yang digunakan saat meluncurkan skrip atau aplikasi Python. Argumen yang diuraikan ini juga diperiksa oleh modul "argparse" untuk memastikan bahwa argumen tersebut memiliki "tipe" yang tepat. Kesalahan muncul jika ada nilai yang tidak valid dalam argumen.
Penggunaan modul argparse dapat dipahami dengan baik melalui contoh. Di bawah ini adalah beberapa contoh kode yang akan membantu Anda memulai dengan modul argparse.
Contoh 1: Menghasilkan Argumen Bantuan dan Pesan
Perhatikan contoh kode di bawah ini:
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
args = pengurai.parse_args()
Pernyataan pertama mengimpor modul "argparse". Selanjutnya, instance baru dari objek "ArgumentParser" dibuat dan deskripsi singkat untuk program diberikan sebagai argumen. Objek ArgumentParser diperlukan untuk mengonversi nilai argumen baris perintah ke tipe data yang dipahami oleh Python. Ini dilakukan dengan metode "parse_args" dari objek ArgumentParser, seperti yang ditunjukkan pada pernyataan terakhir.
Dengan asumsi bahwa Anda telah menyimpan contoh kode yang disebutkan di atas dalam file bernama "test".py", menjalankan perintah di bawah ini akan memberi Anda pesan bantuan yang terkait dengan program.
$ ./uji.py -h$ ./uji.py --help
Anda harus mendapatkan beberapa output yang mirip dengan ini:
penggunaan: tes.py [-h]Sebuah program percobaan.
argumen opsional:
-h, --help tampilkan pesan bantuan ini dan keluar
Perhatikan bahwa tidak ada logika untuk menangani argumen yang diuraikan dan mengubahnya menjadi objek telah ditambahkan ke contoh kode yang disebutkan di atas. Oleh karena itu, pesan bantuan untuk argumen individu tidak ditampilkan dalam output. Setelah Anda menambahkan logika untuk menangani nilai argumen yang diuraikan dalam program Anda, pesan bantuan akan mulai menampilkan deskripsi untuk masing-masing argumen.
Contoh 2: Menangani Argumen String
Untuk menambahkan argumen yang dapat diterima oleh skrip python Anda, Anda perlu menggunakan metode "add_argument". Perhatikan kode berikut:
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
pengurai.add_argument("print_string", help="Mencetak argumen yang diberikan.")
args = pengurai.parse_args()
cetak (args.print_string)
Pernyataan baru telah ditambahkan yang menunjukkan penggunaan metode "add_argument". Setiap argumen yang ditambahkan saat meluncurkan skrip akan diperlakukan sebagai objek "print_string" oleh "ArgumentParser".
Perhatikan bahwa secara default, metode "add_argument" memperlakukan nilai yang diambil dari argumen sebagai string, jadi Anda tidak perlu secara eksplisit menentukan "tipe" dalam kasus ini. Nilai default "Tidak Ada" juga ditetapkan untuk argumen tambahan, kecuali diganti.
Sekali lagi lihat pesan bantuan:
penggunaan: tes.py [-h] [print_string]Sebuah program percobaan.
argumen posisi:
print_string Mencetak argumen yang diberikan.
argumen opsional:
-h, --help tampilkan pesan bantuan ini dan keluar
Salah satu baris dalam output mengatakan "argumen posisional". Karena tidak ada kata kunci untuk argumen yang didefinisikan, saat ini argumen tersebut diperlakukan sebagai "argumen posisional" di mana urutan dan posisi argumen yang diberikan memiliki efek langsung pada program. Argumen posisi juga wajib, kecuali jika Anda mengubah perilakunya secara manual.
Untuk mendefinisikan dan mengurai argumen opsional, Anda dapat menggunakan “-” (tanda hubung ganda) dan mengubah nilai defaultnya menggunakan argumen “default”.
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
pengurai.add_argument("--print_string", help="Mencetak argumen yang diberikan.", default="String acak.”)
args = pengurai.parse_args()
cetak (args.print_string)
Sekarang ketika Anda menjalankan "test".py" tanpa argumen apa pun, Anda harus mendapatkan "String acak.”sebagai keluaran. Anda juga dapat secara opsional menggunakan kata kunci “-print_string” untuk mencetak string pilihan Anda.
$ ./uji.py --print_string LinuxHint.com LinuxHint.comPerhatikan bahwa Anda dapat membuat argumen opsional menjadi wajib dengan menggunakan argumen tambahan “required=True”.
Terakhir, Anda juga dapat mendefinisikan versi singkat dari argumen menggunakan "-" (tanda hubung tunggal) untuk mengurangi verbositas.
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
pengurai.add_argument(“-p”, "--print_string", help="Mencetak argumen yang diberikan.", default="String acak.”)
args = pengurai.parse_args()
cetak (args.print_string)
Menjalankan perintah berikut akan memberi Anda hasil yang sama seperti di atas:
$ ./uji.py -p LinuxHint.comContoh 3: Menangani Argumen Integer
Untuk menangani argumen yang membutuhkan nilai integer, Anda perlu menyetel kata kunci "type" ke "int" untuk memungkinkan validasi dan membuang kesalahan jika kondisi tidak terpenuhi.
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
pengurai.add_argument("-p", "--print_string", help="Mencetak argumen yang diberikan.", ketik=int)
args = pengurai.parse_args()
cetak (args.print_string)
Coba jalankan perintah berikut:
$ ./uji.py -p LinuxHint.comAnda harus mendapatkan kesalahan seperti ini:
penggunaan: tes.py [-h] [-p PRINT_STRING]uji.py: error: argumen -p/--print_string: nilai int tidak valid: 'LinuxHint.com'
Memberikan nilai integer akan memberi Anda hasil yang benar:
$ ./uji.py -p 1000 1000Contoh 4: Menangani Toggles Benar dan Salah
Anda dapat meneruskan argumen tanpa nilai apa pun untuk memperlakukannya sebagai tanda Benar dan Salah menggunakan argumen "tindakan".
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
pengurai.add_argument("-p", "--print_string", help="Mencetak argumen yang diberikan.", tindakan="toko_benar")
args = pengurai.parse_args()
cetak (args.print_string)
Jalankan perintah di bawah ini untuk mendapatkan "True" sederhana sebagai output:
$ ./uji.py -pJika Anda menjalankan skrip tanpa argumen "-p", nilai "False" akan diberikan sebagai gantinya. Nilai "store_true" dari kata kunci "action" memberikan nilai "True" ke variabel "print_string" setiap kali argumen "-p" ditentukan secara eksplisit, jika tidak False ditetapkan ke variabel.
Contoh 5: Perlakukan Nilai Argumen sebagai Daftar
Jika Anda ingin mendapatkan beberapa nilai sekaligus dan menyimpannya dalam daftar, Anda perlu menyediakan kata kunci “nargs” dalam format berikut:
impor argparsepengurai = argparse.ArgumentParser(description='Program uji.')
pengurai.add_argument("-p", "--print_string", help="Mencetak argumen yang diberikan.", nargs='*')
args = pengurai.parse_args()
cetak (args.print_string)
Jalankan perintah berikut untuk menguji kode di atas:
$ ./uji.py -p "a" "b"Anda harus mendapatkan beberapa output seperti ini:
['a', 'b']Kesimpulan
Modul "argparse" cukup komprehensif dengan banyak opsi untuk mengubah perilaku aplikasi baris perintah dan mengurai nilai yang disediakan pengguna. Contoh-contoh ini hanya menyentuh penggunaan dasar modul "argparse". Untuk aplikasi tingkat lanjut dan kompleks, Anda mungkin memerlukan implementasi yang berbeda. Kunjungi dokumentasi resmi untuk penjelasan lengkap tentang modul.