Untuk menambahkan argumen ke skrip Python, anda harus menggunakan modul terbina dalam bernama "Argparse". Seperti namanya, menguraikan argumen baris perintah yang digunakan semasa melancarkan skrip atau aplikasi Python. Argumen yang dihuraikan ini juga diperiksa oleh modul "argparse" untuk memastikan bahawa mereka adalah "jenis" yang tepat. Kesalahan ditimbulkan jika terdapat nilai yang tidak sah dalam argumen.
Penggunaan modul argparse dapat difahami dengan lebih baik melalui contoh. Berikut adalah beberapa contoh kod yang akan memulakan anda dengan modul argparse.
Contoh 1: Hasilkan Argumen Bantuan dan Mesej
Pertimbangkan contoh kod di bawah:
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
args = penghurai.parse_args ()
Pernyataan pertama mengimport modul "argparse". Selanjutnya, contoh baru dari objek "ArgumentParser" dibuat, dan penerangan ringkas mengenai program diberikan sebagai argumen. Objek ArgumentParser diperlukan untuk menukar nilai argumen baris perintah kepada jenis data yang difahami oleh Python. Ini dilakukan dengan kaedah "parse_args" dari objek ArgumentParser, seperti yang ditunjukkan dalam pernyataan terakhir.
Dengan andaian bahawa anda telah menyimpan contoh kod yang dinyatakan di atas dalam fail bernama “test.py ”, menjalankan perintah di bawah ini akan memberi anda bantuan untuk mesej yang berkaitan dengan program.
$ ./ ujian.py -h$ ./ ujian.py - tolong
Anda harus mendapat beberapa output yang serupa dengan ini:
penggunaan: ujian.py [-h]Argumen pilihan program ujian:
-h, --membantu menunjukkan mesej bantuan ini dan keluar
Perhatikan bahawa tidak ada logik untuk menangani argumen yang dihuraikan dan mengubahnya menjadi objek yang telah ditambahkan ke contoh kod yang disebutkan di atas. Oleh itu, mesej pertolongan untuk argumen individu tidak ditunjukkan dalam output. Sebaik sahaja anda menambah logik untuk menangani nilai argumen yang dihuraikan dalam program anda, mesej bantuan akan mula menunjukkan keterangan untuk argumen individu.
Contoh 2: Mengendalikan Argumen Tali
Untuk menambahkan argumen yang dapat diterima oleh skrip Python anda, anda perlu menggunakan kaedah "add_argument". Lihat kod berikut:
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
menghuraikan.add_argument ("print_string", help = "Mencetak argumen yang disediakan.")
args = penghurai.parse_args ()
mencetak (berhujah.print_string)
Pernyataan baru telah ditambahkan, yang menunjukkan penggunaan metode "add_argument". Segala argumen yang ditambahkan ketika melancarkan skrip akan dianggap sebagai objek "print_string" oleh "ArgumentParser".
Perhatikan bahawa secara lalai, kaedah "add_argument" memperlakukan nilai yang diambil dari argumen sebagai rentetan, jadi anda tidak perlu secara jelas menentukan "jenis" dalam hal ini. Nilai lalai "Tidak Ada" juga diberikan pada argumen tambahan, kecuali diganti.
Sekali lagi, lihat mesej bantuan:
penggunaan: ujian.py [-h] [cetak_string]Hujah kedudukan program ujian:
print_string mencetak hujah yang disediakan
hujah pilihan:
-h, --membantu menunjukkan mesej bantuan ini dan keluar
Salah satu baris dalam output mengatakan "argumen kedudukan". Oleh kerana tidak ada kata kunci untuk argumen yang ditentukan, saat ini argumen dianggap sebagai "argumen posisi" di mana urutan dan kedudukan argumen yang diberikan mempunyai kesan langsung pada program. Hujah posisi juga wajib kecuali anda mengubah tingkah laku mereka secara manual.
Untuk menentukan dan menguraikan argumen pilihan, anda dapat menggunakan "-" (double-dash) dan mengubah nilai lalai mereka menggunakan argumen "default".
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
menghuraikan.add_argument ("- print_string", help = "Mencetak argumen yang disediakan.", default =" Rentetan rawak.")
args = penghurai.parse_args ()
mencetak (berhujah.print_string)
Sekarang semasa anda menjalankan "ujian.skrip py "tanpa sebarang argumen, anda harus mendapatkan" Rentetan rawak."Sebagai output. Anda juga boleh menggunakan kata kunci “-print_string” untuk mencetak rentetan pilihan anda.
$ ./ ujian.py --print_string LinuxHint.comLinuxHint.com
Perhatikan bahawa anda boleh menjadikan argumen pilihan wajib dengan menggunakan argumen tambahan "wajib = Benar".
Terakhir, anda juga dapat menentukan versi pendek dari argumen menggunakan “-” (tanda sempang tunggal) untuk mengurangkan ketajaman.
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
menghuraikan.add_argument (“- p”, "--print_string", help = "Mencetak argumen yang disediakan.", default =" Rentetan rawak.")
args = penghurai.parse_args ()
mencetak (berhujah.print_string)
Menjalankan arahan berikut akan memberikan hasil yang sama seperti di atas:
$ ./ ujian.py -p LinuxHint.comContoh 3: Mengendalikan Hujah Integer
Untuk menangani argumen yang memerlukan nilai bilangan bulat, anda harus menetapkan kata kunci "jenis" ke "int" untuk membenarkan pengesahan dan kesalahan yang berlaku sekiranya keadaan tidak dipenuhi.
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
menghuraikan.add_argument ("- p", "--print_string", help = "Mencetak argumen yang disediakan.", taip = int)
args = penghurai.parse_args ()
mencetak (berhujah.print_string)
Cuba jalankan arahan berikut:
$ ./ ujian.py -p LinuxHint.comAnda seharusnya mendapat ralat seperti ini:
penggunaan: ujian.py [-h] [-p PRINT_STRING]ujian.py: ralat: argumen -p / - print_string: nilai int tidak sah: 'LinuxHint.com '
Membekalkan nilai integer akan memberi anda hasil yang betul:
$ ./ ujian.py -p 1000 1000Contoh 4: Tangani Togol Betul dan Salah
Anda boleh menyampaikan argumen tanpa nilai untuk memperlakukannya sebagai bendera Betul dan Salah menggunakan argumen "tindakan".
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
menghuraikan.add_argument ("- p", "--print_string", help = "Mencetak argumen yang disediakan.", action =" store_true ")
args = penghurai.parse_args ()
mencetak (berhujah.print_string)
Jalankan arahan di bawah untuk mendapatkan "Benar" ringkas sebagai output:
$ ./ ujian.py -pSekiranya anda menjalankan skrip tanpa argumen "-p", nilai "False" akan diberikan. Nilai "store_true" dari kata kunci "action" memberikan nilai "True" ke variabel "print_string" setiap kali argumen "-p" dinyatakan secara eksplisit, jika tidak False ditetapkan pada pemboleh ubah.
Contoh 5: Perlakukan Nilai Hujah sebagai Senarai
Sekiranya anda ingin mendapatkan beberapa nilai sekaligus dan menyimpannya dalam senarai, anda perlu memberikan kata kunci "nargs" dalam format berikut:
import argparsepenghurai = argparse.ArgumentParser (keterangan = 'Program ujian.')
menghuraikan.add_argument ("- p", "--print_string", help = "Mencetak argumen yang disediakan.", nargs = '*')
args = penghurai.parse_args ()
mencetak (berhujah.print_string)
Jalankan arahan berikut untuk menguji kod di atas:
$ ./ ujian.py -p "a" "b"Anda harus mendapat beberapa output seperti ini:
['a', 'b']Kesimpulannya
Modul "argparse" cukup komprehensif dengan banyak pilihan untuk mengubah tingkah laku aplikasi baris perintah dan menguraikan nilai yang dibekalkan pengguna. Contoh-contoh ini hanya menyentuh penggunaan asas modul "argparse". Untuk aplikasi lanjutan dan kompleks, anda mungkin memerlukan pelaksanaan yang berbeza. Lawati dokumentasi rasmi untuk penjelasan lengkap mengenai modul.