Cara mengurai argumen pada baris perintah dengan Python

How Parse Arguments Command Line Python



Argumen baris perintah digunakan untuk melewatkan data dalam program pada saat eksekusi program. Fitur ini tersedia di sebagian besar bahasa pemrograman populer. Tetapi pemrosesan argumen baris perintah berbeda untuk bahasa yang berbeda. Nilai argumen diberikan dengan nama program pada saat menjalankan program. Bahasa Python mendukung fitur ini. Bagaimana argumen baris perintah diuraikan dalam skrip Python ditampilkan di artikel ini.

Parsing argumen baris perintah menggunakan sistem modul

Argumen baris perintah disimpan ke dalam daftar menggunakan sistem modul. sys.argv digunakan untuk membaca nilai argumen baris perintah. Jumlah total argumen baris perintah dapat dihitung dengan menggunakan len () fungsi. Penggunaan modul ini dijelaskan di bagian artikel.







Contoh 1: Membaca jumlah argumen dan nilai argumen

Buat file dengan skrip python berikut. Di sini, nilai argumen baris perintah disimpan dalam variabel, argv seperti bahasa lainnya. len () metode menghitung jumlah total argumen yang diteruskan pada saat menjalankan skrip. Nilai argumen dicetak sebagai array di akhir skrip.



# Impor modul sistem
impor sistem

# Cetak jumlah total argumen
mencetak('Total argumen:', len(sistem.argv))
mencetak('Nilai argumennya adalah:', P(sistem.argv))

Keluaran:



Skrip di atas dijalankan di sini menggunakan empat argumen baris perintah. Argumen pertama adalah nama skrip dan yang lainnya adalah nilai numerik. Output berikut akan muncul setelah menjalankan skrip.





Contoh 2: Membaca nilai argumen menggunakan loop



Pada contoh sebelumnya, nilai argumen dicetak sebagai array. Buat file dengan skrip berikut untuk mencetak tipe variabel argumen dan mencetak setiap nilai argumen di setiap baris dengan menggunakan for loop.

# Impor modul sistem
impor sistem

# Cetak tipe variabel, sys.argv
mencetak(Tipe(sistem.argv))

# Cetak setiap argumen baris perintah di setiap baris
mencetak('Argumen baris perintah adalah:')
untukSayadi dalam sistem.argv:
mencetak(Saya)

Keluaran:

Skrip di atas dijalankan dengan memberikan tiga argumen dengan nama skrip. Output berikut akan muncul setelah menjalankan skrip.

Parsing argumen baris perintah menggunakan modul getopt

atasnya modul digunakan untuk mengurai argumen baris perintah dengan opsi. atasnya () metode modul ini digunakan untuk membaca argumen. Metode ini memiliki tiga argumen. Dua argumen pertama adalah wajib dan argumen terakhir adalah opsional. Penggunaan argumen ini diberikan di bawah ini.

argumen: Ini berisi argumen yang diambil dari argumen baris perintah.

opsi_pendek: Itu bisa berupa huruf apa saja yang lolos dengan argumen.

opsi_panjang: Ini digunakan untuk menentukan opsi panjang dengan dua bagian. Ini adalah nama opsi dan nilai opsi.

Sintaksis: getopt.getopt(args, short_option, [long_option])

Contoh 3: Membaca nilai argumen menggunakan opsi getopt pendek

atasnya modul berisi lebih banyak fitur daripada sistem modul. Contoh berikut menunjukkan bagaimana opsi pendek dapat digunakan dalam atasnya () metode. argv variabel akan menyimpan argumen baris perintah dengan menghilangkan nama skrip. Selanjutnya, dua opsi didefinisikan dalam atasnya () metode yang dapat digunakan dengan argumen pada saat run-time. Jika terjadi kesalahan maka akan muncul pesan kesalahan.

# Impor modul getopt
impor atasnya

# Impor modul sistem
impor sistem

# Simpan variabel argumen dengan menghilangkan nama skrip
argv= sistem.argv[1:]

mencoba:
# Tentukan opsi getopt pendek
pilihan,argumen= atasnya.atasnya(argv, 'x: y:')

# cetak opsi dan argumen
mencetak(pilihan)
mencetak(argumen)

kecuali atasnya.GetoptError:

# Cetak pesan kesalahan jika opsi yang diberikan salah
mencetak('Pilihan yang salah disediakan')

# Hentikan skrip
sistem.keluar(2)

Keluaran:

Jalankan skrip tanpa argumen apa pun, argumen dengan opsi yang benar dan argumen dengan opsi yang salah.

Contoh 4: Membaca nilai argumen menggunakan opsi getopt pendek dan panjang

Contoh ini menunjukkan bagaimana opsi pendek dan panjang dapat digunakan dengan nilai argumen. Ini akan menambahkan dua angka ketika '-ke' atau '-Menambahkan' akan digunakan sebagai opsi dan kurangi dua angka ketika ' -S' atau ' -sub' akan digunakan sebagai opsi pada saat run-time.

# Impor modul getopt
impor atasnya

# Impor modul sistem
impor sistem

# Simpan variabel argumen dengan menghilangkan nama skrip
argv= sistem.argv[1:]

# Inisialisasi variabel hasil
hasil=0

mencoba:

# Tentukan opsi getopt pendek dan panjang
pilihan,argumen= atasnya.atasnya(sistem.argv[1:], 'sebagai', ['tambah=','sub='])

# Baca setiap opsi menggunakan for loop
untukmemilih,marahdi dalampilihan:
# Hitung jumlah jika opsinya adalah -a atau --add
jikamemilihdi dalam ('-ke', '--Menambahkan'):
hasil= ke dalam(argv[1])+ke dalam(argv[2])

# Hitung suntraction jika opsinya adalah -s atau --sub
elifmemilihdi dalam ('-S', '--sub'):
hasil= ke dalam(argv[1])-ke dalam(argv[2])

mencetak('Hasil = ',hasil)

kecuali atasnya.GetoptError:

# Cetak pesan kesalahan jika opsi yang diberikan salah
mencetak('Pilihan yang salah disediakan')

# Hentikan skrip
sistem.keluar(2)

Keluaran:

Jalankan skrip tanpa argumen dan opsi apa pun, argumen dengan opsi '-a', argumen dengan opsi '-s', dan argumen dengan opsi yang salah.

Parsing argumen baris perintah menggunakan modul argparse

Modul Argparse berisi banyak opsi untuk membaca argumen baris perintah. Nilai argumen default, argumen dengan tipe data, argumen posisi, pesan bantuan, dll. dapat disediakan oleh modul ini.

Contoh 5: Membaca argumen baris perintah menggunakan argparse

Contoh berikut menunjukkan penggunaan argparse modul untuk membaca argumen baris perintah. Di sini, dua opsi ditentukan untuk membaca argumen baris perintah. Ini adalah '-n' atau '–nama' dan '-e' atau '–email'. Jika pengguna memberikan argumen yang salah maka itu akan menampilkan kesalahan dengan pesan penggunaan. Jika pengguna memberikan opsi yang benar dengan argumen maka itu akan menampilkan nilai argumen. jika pengguna menjalankan skrip dengan opsi '–help' maka itu akan memberikan pesan yang diperlukan untuk menjalankan skrip.

# Impor modul argparse
imporargparse

# Impor modul sistem
impor sistem

# Deklarasikan fungsi untuk mendefinisikan argumen baris perintah
defbacaOpsi(argumen=sistem.argv[1:]):
pengurai =argparse.Argumen Parser(keterangan='Daftar perintah parsing.')
pengurai.tambahkan_argumen('-n', '--nama', Tolong='Ketik nama Anda.')
pengurai.tambahkan_argumen('-Dan', '--surel', Tolong='Ketik email Anda.')
memilih= pengurai.parse_args(argumen)
kembalimemilih

# Panggil fungsi untuk membaca nilai argumen
pilihan=bacaOpsi(sistem.argv[1:])
mencetak(pilihan.nama)
mencetak(pilihan.surel)

Keluaran:

Jalankan skrip dengan opsi yang salah, opsi yang benar, dan opsi bantuan.

Kesimpulan:

Berbagai cara membaca argumen baris perintah dijelaskan dalam tutorial ini dengan menggunakan tiga modul python. Saya harap, tutorial ini akan membantu pembuat kode yang ingin membaca data menggunakan argumen baris perintah dengan python.

Tonton Video Penulis: di sini