Cara menghuraikan argumen pada baris perintah di Python

How Parse Arguments Command Line Python



Argumen baris perintah digunakan untuk menyampaikan data dalam program pada masa pelaksanaan program. Ciri ini tersedia di kebanyakan bahasa pengaturcaraan yang popular. Tetapi pemprosesan argumen baris perintah berbeza untuk bahasa yang berbeza. Nilai argumen diberikan dengan nama program pada masa menjalankan program. Bahasa Python menyokong ciri ini. Bagaimana argumen baris perintah diuraikan dalam skrip Python ditunjukkan dalam artikel ini.

Menghuraikan argumen baris perintah menggunakan sys modul

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







Contoh 1: Membaca bilangan hujah dan nilai hujah

Buat fail dengan skrip python berikut. Di sini, nilai argumen baris perintah disimpan dalam pemboleh ubah, berhujah seperti bahasa lain. len () kaedah mengira jumlah argumen yang dilalui pada masa melaksanakan skrip. Nilai argumen dicetak sebagai tatasusunan pada akhir skrip.



# Modul sys import
mengimport sys

# Cetak jumlah argumen
mencetak('Jumlah hujah:', len(sys.berhujah))
mencetak('Nilai argumen adalah:', hlm(sys.berhujah))

Pengeluaran:



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





Contoh 2: Membaca nilai argumen menggunakan gelung



Dalam contoh sebelumnya, nilai argumen dicetak sebagai tatasusunan. Buat fail dengan skrip berikut untuk mencetak jenis pemboleh ubah argumen dan mencetak setiap nilai argumen di setiap baris dengan menggunakan loop.

# Modul sys import
mengimport sys

# Cetak jenis pemboleh ubah, sys.argv
mencetak(menaip(sys.berhujah))

# Cetak setiap argumen baris perintah di setiap baris
mencetak('Argumen baris perintah adalah:')
untukidalam sys.berhujah:
mencetak(i)

Pengeluaran:

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

Menghuraikan argumen baris perintah menggunakan modul getopt

Teratas modul digunakan untuk menguraikan argumen baris perintah dengan pilihan. teratas () kaedah modul ini digunakan untuk membaca hujah. Kaedah ini mempunyai tiga hujah. Dua argumen pertama adalah wajib dan argumen terakhir adalah pilihan. Penggunaan hujah-hujah ini diberikan di bawah.

berhujah: Ia mengandungi hujah yang diambil dari argumen baris perintah.

pilihan_ pendek: Ini boleh menjadi surat yang disertakan dengan hujah.

pilihan_panjang: Ia digunakan untuk menentukan pilihan panjang dengan dua bahagian. Ini adalah nama opsyen dan nilai opsyen.

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

Contoh 3: Membaca nilai argumen menggunakan pilihan getopt pendek

teratas modul mengandungi lebih banyak ciri daripada sys modul. Contoh berikut menunjukkan bagaimana pilihan pendek boleh digunakan teratas () kaedah. berhujah pemboleh ubah akan menyimpan argumen baris perintah dengan menghilangkan nama skrip. Seterusnya, dua pilihan ditakrifkan dalam teratas () kaedah yang boleh digunakan dengan argumen pada masa run. Sekiranya ada ralat, mesej ralat akan dipaparkan.

# Import modul getopt
mengimport teratas

# Modul sys import
mengimport sys

# Pembolehubah argumen kedai menghilangkan nama skrip
berhujah= sys.berhujah[1:]

cuba:
# Tentukan pilihan pendek getopt
pilihan,berhujah= teratas.teratas(berhujah, 'x: y:')

# mencetak pilihan dan hujah
mencetak(pilihan)
mencetak(berhujah)

kecuali teratas.Kesalahan Getopt:

# Cetak mesej ralat jika pilihan yang salah diberikan
mencetak('Pilihan yang salah disediakan')

# Tamatkan skrip
sys.jalan keluar(2)

Pengeluaran:

Jalankan skrip tanpa argumen, argumen dengan pilihan yang betul dan argumen dengan pilihan yang salah.

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

Contoh ini menunjukkan bagaimana pilihan pendek dan panjang dapat digunakan dengan nilai argumen. Ia akan menambah dua nombor bila '-kepada' atau '-Tambah' akan digunakan sebagai pilihan dan tolak dua nombor apabila ‘ -s ' atau ‘ –Sub ’ akan digunakan sebagai pilihan pada waktu larian.

# Import modul getopt
mengimport teratas

# Modul sys import
mengimport sys

# Pembolehubah argumen kedai menghilangkan nama skrip
berhujah= sys.berhujah[1:]

# Permulaan pemboleh ubah hasil
hasil=0

cuba:

# Tentukan pilihan pendek dan panjang getopt
pilihan,berhujah= teratas.teratas(sys.berhujah[1:], 'a: s', ['tambah =','sub ='])

# Baca setiap pilihan menggunakan loop
untukmemilih,marahdalampilihan:
# Hitung jumlahnya jika pilihannya adalah -a atau - tambah
sekiranyamemilihdalam ('-kepada', '--Tambah'):
hasil= int(berhujah[1])+int(berhujah[2])

# Hitung penolakan jika pilihannya adalah -s atau --sub
elifmemilihdalam ('-s', '--sub'):
hasil= int(berhujah[1])-int(berhujah[2])

mencetak('Hasil =',hasil)

kecuali teratas.Kesalahan Getopt:

# Cetak mesej ralat jika pilihan yang salah diberikan
mencetak('Pilihan yang salah disediakan')

# Tamatkan skrip
sys.jalan keluar(2)

Pengeluaran:

Jalankan skrip tanpa argumen dan pilihan, argumen dengan pilihan ‘-a’, argumen dengan pilihan ‘-s’ dan argumen dengan pilihan yang salah.

Menghuraikan argumen baris perintah menggunakan modul argparse

Modul Argparse mengandungi banyak pilihan untuk membaca argumen baris perintah. Nilai argumen lalai, argumen dengan jenis data, argumen kedudukan, mesej bantuan, dll boleh disediakan oleh modul ini.

Contoh 5: Membaca hujah baris perintah menggunakan argparse

Contoh berikut menunjukkan penggunaan berhujah modul untuk membaca hujah baris perintah. Di sini, dua pilihan ditentukan untuk membaca argumen baris perintah. Ini adalah ‘-N’ atau ‘–nama’ dan ‘-E’ atau ‘–email’. Sekiranya pengguna memberikan argumen yang salah maka ia akan menunjukkan kesalahan dengan mesej penggunaan. Sekiranya pengguna memberikan pilihan yang betul dengan argumen maka ia akan memaparkan nilai argumen. jika pengguna menjalankan skrip dengan pilihan ‘–help’ maka ia akan memberikan mesej yang diperlukan untuk menjalankan skrip tersebut.

# Modul argparse import
mengimportberhujah

# Modul sys import
mengimport sys

# Menyatakan fungsi untuk menentukan argumen baris perintah
defbaca Pilihan(berhujah=sys.berhujah[1:]):
menghuraikan =berhujah.Pembahas Argument(penerangan='Senarai arahan penghuraian.')
menghuraikan.add_argument('-n', '- nama', menolong='Taipkan nama anda.')
menghuraikan.add_argument('-Dan', '- e-mel', menolong='Taipkan e-mel anda.')
memilih= menghuraikan.parse_args(berhujah)
kembalimemilih

# Panggil fungsi untuk membaca nilai argumen
pilihan=baca Pilihan(sys.berhujah[1:])
mencetak(pilihan.nama)
mencetak(pilihan.e-mel)

Pengeluaran:

Jalankan skrip dengan pilihan yang salah, pilihan yang betul dan pilihan bantuan.

Kesimpulan:

Pelbagai cara membaca argumen baris perintah dijelaskan dalam tutorial ini dengan menggunakan tiga modul python. Saya harap, tutorial ini dapat membantu pengekod yang ingin membaca data menggunakan argumen baris perintah di python.

Tonton Video Pengarang: di sini