Python

Cara Menambahkan Argumen Baris Perintah ke Skrip Python?

Cara Menambahkan Argumen Baris Perintah ke Skrip Python?
Jika Anda telah mengembangkan skrip atau aplikasi Python yang dimaksudkan untuk dijalankan terutama di emulator terminal atau bahkan aplikasi GUI, maka menambahkan argumen baris perintah dapat meningkatkan kegunaannya, keterbacaan kode, struktur aplikasi, dan keseluruhan keramahan pengguna aplikasi 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 argparse
pengurai = 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 argparse
pengurai = 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 argparse
pengurai = 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.com
LinuxPetunjuk.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 argparse
pengurai = 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.com

Contoh 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 argparse
pengurai = 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.com

Anda 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 1000

Contoh 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 argparse
pengurai = 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 -p

Jika 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 argparse
pengurai = 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.

Trackpad dan Mouse Pointer di Layar AppyMouse untuk Tablet Windows
Pengguna tablet sering melewatkan penunjuk mouse, terutama ketika mereka terbiasa menggunakan laptop. Layar sentuh Smartphone dan tablet hadir dengan ...
Tombol tengah mouse tidak berfungsi di Windows 10
Itu tombol tengah mouse membantu Anda menelusuri halaman web dan layar yang panjang dengan banyak data. Jika itu berhenti, Anda akhirnya akan mengguna...
Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...