Cara Menambahkan Argumen Baris Perintah ke Skrip Python

How Add Command Line Arguments Python Script



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 sakelar 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, ia 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 dimunculkan 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:



imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

argumen= 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.

$ ./tes.py-H

$ ./tes.py-Tolong

Anda harus mendapatkan beberapa output yang mirip dengan ini:



penggunaan: test.py [-h]


Sebuah program uji.


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 individual 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:

imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

pengurai.tambahkan_argumen('cetak_string', Tolong='Mencetak argumen yang diberikan.')

argumen= pengurai.parse_args()

mencetak(argumen.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 ke argumen tambahan, kecuali diganti.

Sekali lagi lihat pesan bantuan:

penggunaan: test.py [-h] [print_string]


Sebuah program uji.


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 posisi. Karena tidak ada kata kunci untuk argumen yang didefinisikan, saat ini argumen tersebut diperlakukan sebagai argumen posisi 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.

imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

pengurai.tambahkan_argumen('--print_string', Tolong='Mencetak argumen yang diberikan.',bawaan=KEacak rangkaian.)

argumen= pengurai.parse_args()

mencetak(argumen.print_string)

Sekarang ketika Anda menjalankan skrip 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.

$ ./tes.py--print_string LinuxHint.denganLinuxHint.com

Perhatikan bahwa Anda dapat membuat argumen opsional menjadi wajib dengan menggunakan argumen tambahan yang diperlukan=True.

Terakhir, Anda juga dapat mendefinisikan versi singkat dari argumen menggunakan - (tanda hubung tunggal) untuk mengurangi verbositas.

imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

pengurai.tambahkan_argumen(-P, '--print_string', Tolong='Mencetak argumen yang diberikan.',bawaan=KEacak rangkaian.)

argumen= pengurai.parse_args()

mencetak(argumen.print_string)

Menjalankan perintah berikut akan memberi Anda hasil yang sama seperti di atas:

$ ./tes.py-p LinuxHint.dengan

Contoh 3: Menangani Argumen Integer

Untuk menangani argumen yang memerlukan nilai integer, Anda perlu menyetel kata kunci type ke int untuk mengizinkan validasi dan membuang kesalahan jika kondisi tidak terpenuhi.

imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

pengurai.tambahkan_argumen('-P', '--print_string', Tolong='Mencetak argumen yang diberikan.', Tipe=ke dalam)

argumen= pengurai.parse_args()

mencetak(argumen.print_string)

Coba jalankan perintah berikut:

$ ./tes.py-p LinuxHint.dengan

Anda harus mendapatkan kesalahan seperti ini:

penggunaan: test.py [-h] [-p PRINT_STRING]

test.py: error: argumen -p/--print_string: nilai int tidak valid: 'LinuxHint.com'

Memberikan nilai integer akan memberi Anda hasil yang benar:

$ ./tes.py-P10001000

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.

imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

pengurai.tambahkan_argumen('-P', '--print_string', Tolong='Mencetak argumen yang diberikan.',tindakan='toko_benar')

argumen= pengurai.parse_args()

mencetak(argumen.print_string)

Jalankan perintah di bawah ini untuk mendapatkan True sederhana sebagai output:

$ ./tes.py-P

Jika Anda menjalankan skrip tanpa argumen -p, nilai False akan ditetapkan 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:

imporargparse

pengurai =argparse.Argumen Parser(keterangan='Sebuah program percobaan.')

pengurai.tambahkan_argumen('-P', '--print_string', Tolong='Mencetak argumen yang diberikan.',narg='*')

argumen= pengurai.parse_args()

mencetak(argumen.print_string)

Jalankan perintah berikut untuk menguji kode di atas:

$ ./tes.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. Mengunjungi dokumentasi resmi untuk penjelasan lengkap tentang modul.