Bagaimana Menambahkan Argumen Baris Perintah ke Skrip Python?

Bagaimana 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 command line dapat meningkatkan kegunaannya, keterbacaan kode, struktur aplikasi, dan keseluruhan kemudahan useran aplikasi untuk user akhir. Argumen command line 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, ini mem-parsing argumen command line 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. Error 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: Buat Argumen dan Pesan Bantuan

Perhatikan contoh kode di bawah ini:

import argparse
parser = argparse.ArgumentParser(description='A test program.')
args = parser.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 command line 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 contoh yang disebutkan di atas dalam file bernama “test.py”, menjalankan perintah di bawah ini akan membuat Anda membantu pesan yang terkait dengan program.

$./test.py -h
$./test.py --help

Anda harus mendapatkan beberapa output yang mirip dengan ini:

usage: test.py [-h]

A test program optional arguments:
  -h, --help show this help message and exit

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:

import argparse
parser = argparse.ArgumentParser(description='A test program.')
parser.add_argument("print_string", help="Prints the supplied argument.")
args = parser.parse_args()
print(args.print_string)

Pernyataan baru telah ditambahkan, yang menunjukkan useran 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:

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

A test program positional arguments:
  print_string prints the supplied argument

optional arguments:
  -h, --help show this help message and exit

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 Anda mengubah perilakunya secara manual.

Untuk mendefinisikan dan mengurai argumen opsional, Anda dapat menggunakan “–” (tanda hubung ganda) dan mengubah nilai defaultnya menggunakan argumen “default”.

import argparse
parser = argparse.ArgumentParser(description='A test program.')
parser.add_argument("--print_string", help="Prints the supplied argument.", default=”A random string.”)
args = parser.parse_args()
print(args.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.

$./test.py --print_string LinuxHint.com
LinuxHint.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 mengu
rangi verbositas.

import argparse
parser = argparse.ArgumentParser(description='A test program.')
parser.add_argument(“-p”, "--print_string", help="Prints the supplied argument.", default=”A random string.”)
args = parser.parse_args()
print(args.print_string)

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

$./test.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 error jika kondisinya tidak terpenuhi.

import argparse
parser = argparse.ArgumentParser(description='A test program.')
parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", type=int)
args = parser.parse_args()
print(args.print_string)

Coba jalankan perintah berikut:

$./test.py -p LinuxHint.com

Anda harus mendapatkan error seperti ini:

usage: test.py [-h] [-p PRINT_STRING]
test.py: error: argument -p/--print_string: invalid int value: 'LinuxHint.com'

Memberikan nilai integer akan memberi Anda hasil yang benar:

$./test.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”.

import argparse
parser = argparse.ArgumentParser(description='A test program.')
parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", action="store_true")
args = parser.parse_args()
print(args.print_string)

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

$./test.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:

import argparse
parser = argparse.ArgumentParser(description='A test program.')
parser.add_argument("-p", "--print_string", help="Prints the supplied argument.", nargs='*')
args = parser.parse_args()
print(args.print_string)

Jalankan perintah berikut untuk menguji kode di atas:

$./test.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 command line dan mengurai nilai yang disediakan user. Contoh-contoh ini hanya menyentuh useran dasar modul “argparse”. Untuk aplikasi tingkat lanjut dan kompleks, Anda mungkin memerlukan implementasi yang berbeda. Kunjungi dokumentasi resmi untuk penjelasan lengkap modul.

Related Posts