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 tentang 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 kode sampel yang disebutkan di atas dalam file bernama "test".py", menjalankan perintah di bawah ini akan membuat Anda membantu pesan yang terkait dengan program.
$ ./uji.py -h$ ./uji.py --help
Anda harus mendapatkan beberapa output yang mirip dengan ini:
penggunaan: tes.py [-h]Argumen opsional program uji:
-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, menunjukkan penggunaan metode "tambahkan_argumen". 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]Argumen posisi program uji:
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 diperlakukan sebagai "argumen posisional" di mana urutan dan posisi argumen yang diberikan memiliki efek langsung pada program. Argumen posisi juga wajib kecuali 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 "tes".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.comLinuxPetunjuk.com
Perhatikan bahwa Anda dapat membuat argumen opsional menjadi wajib dengan menggunakan argumen tambahan “required=True”.
Terakhir, Anda juga dapat mendefinisikan versi singkat dari argumen menggunakan “-” (satu tanda hubung) 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.