Pemrograman

Dasar-dasar Parsing Argumen Baris Perintah dengan Python

Dasar-dasar Parsing Argumen Baris Perintah dengan Python

Aplikasi baris perintah adalah salah satu jenis aplikasi tertua dan paling banyak digunakan. Jika Anda adalah pengguna Linux yang berpengalaman, Anda mungkin jarang menggunakan alat GUI daripada alat baris perintah untuk melakukan tugas yang sama. Misalnya, Anaconda, manajer paket untuk python, memiliki alat baris perintah bernama Conda dan alat GUI bernama anaconda navigator.

Hal yang membuat aplikasi baris perintah populer di kalangan pengembang adalah mereka mengkonsumsi sumber daya yang sangat sedikit dibandingkan dengan rekan GUI-nya dan memberikan kinerja yang lebih baik.

Python adalah bahasa yang sederhana dan kuat untuk membangun aplikasi baris perintah. Ini menyediakan banyak perpustakaan yang sudah ditulis oleh banyak programmer hebat, membuat tugas kita lebih mudah karena kita tidak perlu menulis ulang kode yang sama.

Dalam tutorial ini, saya akan menyajikan library Argparse python kepada Anda, yang dapat mengurai argumen dari aplikasi baris perintah. Ini berguna untuk membangun antarmuka baris perintah yang hebat. Untuk mengikuti tutorial ini, disarankan untuk menginstal python versi terbaru. Kami juga memiliki tutorial langkah demi langkah untuk memperbarui python ke versi terbaru di Linux.

pengantar

Parsing Argumen adalah konsep penting yang harus kita gunakan untuk membangun antarmuka baris perintah yang kuat dan ramah pengguna. Jika Anda telah menggunakan aplikasi baris perintah sebelumnya, Anda mungkin telah memperhatikan bahwa kami dapat menambahkan argumen ke aplikasi baris perintah untuk mengonfigurasi opsi alat.

Misalnya, jika Anda telah menggunakan ls perintah di Linux, yang digunakan untuk membuat daftar item direktori kerja saat ini, Anda mungkin telah melihat output yang serupa, seperti yang ditunjukkan pada gambar di bawah ini.

ls perintah di Linux

Seperti yang Anda lihat pada gambar, ini mencantumkan item di direktori saat ini. Kita juga dapat menggunakan ls perintah lebih menguntungkan dengan memberikan argumen seperti yang saya lakukan pada perintah berikut.

ls -a

Sekarang saat mengetik perintah ini di terminal, itu akan mencantumkan semua item yang ada di direktori kerja saat ini, termasuk item yang tersembunyi. Seperti yang Anda lihat, dengan memberikan argumen pada perintah, kita dapat dengan mudah menentukan opsi untuk perintah dengan cara yang ramah. Di sinilah argumen berperan. Mereka membuat aplikasi baris perintah lebih berguna dan ramah.

Anda mungkin bertanya-tanya kapan dan bagaimana menambahkan argumen baris perintah di aplikasi Anda your. Bayangkan Anda sedang membangun aplikasi yang membutuhkan input pengguna dari nama file yang akan diproses aplikasi application.

Kita dapat melakukannya dengan dua cara:

Trik pertama bagus, tetapi yang kedua lebih berguna karena pengguna dapat memberikan semua opsi dalam satu perintah, yang membuatnya lebih ramah pengguna.

Python menyertakan perpustakaan hebat bernama "argparse," yang berguna untuk membuat dan menguraikan argumen baris perintah dan dapat membangun antarmuka baris perintah yang kuat untuk pengguna dengan sangat mudah. Mari kita menyelam lebih dalam ke perpustakaan argparse python.

Perpustakaan Argparse

Itu argparse library adalah cara mudah dan berguna untuk mengurai argumen sambil membangun aplikasi baris perintah dengan python. Meskipun ada argumen lain yang mengurai perpustakaan seperti optparse, getopt, dll., itu argparse library secara resmi merupakan cara yang disarankan untuk mengurai argumen baris perintah.

Ini juga tersedia di pustaka standar python, jadi kami tidak memerlukan konfigurasi manual apa pun. Itu argparse perpustakaan telah dibangun menggunakan optparse perpustakaan python, tapi argparse lebih berguna dan ramah pengembang daripada optparse Perpustakaan.

Demo Praktis Argparse

Mari kita lihat demo praktis tentang cara menggunakan perpustakaan argparse untuk membuat antarmuka baris perintah sederhana simple. Program ini akan menerima path dan memeriksa apakah path ada atau tidak dan jika ada, kemudian mencetak apakah itu file atau direktori.

import os import argparse parser = argparse.ArgumentParser('description = "Pemeriksa Keberadaan Jalur") parser.add_argument("--path", help="masukkan jalur untuk memeriksa apakah ada") args = parser.parse_args() input_path = argumen.jalan jika os.jalan.isdir(input_path): print("Jalur Ada dan itu adalah direktori") elif os.jalan.isfile(input_path): print("Jalur Ada dan itu adalah file") else: print("Jalur tidak ada")
Saat menjalankan program di atas, kita dapat memeriksa apakah jalurnya ada atau tidak.

demo parsing argumen dengan argparse

Anda juga dapat menggunakan -h argumen dengan program, yang merupakan argumen default untuk menampilkan pesan bantuan.

pesan bantuan default argparse

Biarkan saya menjelaskan kepada Anda bagaimana program di atas bekerja. Di dua baris pertama, kami mengimpor modul yang akan kami butuhkan dalam program. Itu os modul telah diimpor untuk memeriksa apakah jalurnya ada atau tidak, dan apakah itu file atau direktori. Jika Anda ingin mempelajari lebih lanjut tentang os modul, Anda dapat merujuk ke panduan kami tentang bekerja dengan os di python.Di baris berikutnya, kami mengimpor perpustakaan argparse yang diperlukan untuk membuat dan mengurai argumen. Di baris ketiga, kami membuat objek parser menggunakan kelas ArgumentParser dari perpustakaan argparse. Kelas ini juga menerima deskripsi parameter opsional, yang akan ditampilkan dalam pesan bantuan.Pada baris berikutnya, kita telah membuat argumen bernama path menggunakan metode add_argument() dari objek parser dan memberikan detail pada parameter bantuan yang akan ditampilkan pada pesan bantuan seperti yang telah kita lihat pada output sebelumnya.Selanjutnya, kita mengurai argumen menggunakan metode parse_args() dari objek parser dan mengakses jalur input pengguna sebagai argumen. Kami mendapatkan jalur yang dimasukkan pengguna dalam argumen dan kemudian menggunakannya dengan modul os untuk memeriksa apakah itu file atau folder. Jika tidak ada di antara keduanya, itu akan mencetak bahwa jalurnya tidak ada.

Kustomisasi

Mari kita lihat beberapa penyesuaian yang dapat kita lakukan pada antarmuka baris perintah kita dengan bantuan perpustakaan argparse.

Bantuan Penggunaan Kustom

Saat kita menjalankan program demo yang kita buat tadi dengan -h parameter, kami mendapatkan bantuan program sebagai output yang dihasilkan oleh perpustakaan argparse. Jika Anda melihat pesan bantuan, ada bantuan penggunaan di baris paling atas yang menunjukkan kepada kami cara menggunakannya.Dalam program demo kami, kami mendapatkan bantuan penggunaan standar. Kami masih dapat dengan mudah menyesuaikannya dengan menggunakan parameter penggunaan saat membuat objek parser menggunakan kelas ArgumentParser(). Lihat kode di bawah ini, yang akan dimodifikasi dalam program demo kami.
pengurai = argparse.ArgumentParser(description = "Pemeriksa Keberadaan Jalur", penggunaan="cla.jalur py")
Berikut adalah outputnya:

bantuan penggunaan khusus di argparse

Seperti yang bisa kita lihat di output, bantuan penggunaan telah diubah menjadi yang kita tentukan di parameter penggunaan kelas ArgumentParser().

Menyesuaikan Argumen

Kami juga dapat menggunakan perpustakaan Argparse untuk menyesuaikan argumen seperti apakah argumen akan diperlukan atau tidak, memberikan argumen nilai default.

Menambahkan nilai default

Kami dapat memberikan argumen nilai default menggunakan parameter default ke tambahkan_argumen() metode. Sebagai contoh, lihat kode di bawah ini.

import os import argparse parser = argparse.ArgumentParser(description = "Pemeriksa Keberadaan Jalur", penggunaan="cla.py path") parser.add_argument("--path", help="masukkan jalur untuk memeriksa apakah ada", default="nama file.txt") args = pengurai.parse_args() input_path = argumen.path jika input_path == Tidak ada: exit() elif os.jalan.isdir(input_path): print("Jalur Ada dan itu adalah direktori") elif os.jalan.isfile(input_path): print("Jalur Ada dan itu adalah file") else: print("Jalur tidak ada")

Saat menjalankan program di atas tanpa argumen, kita akan mendapatkan output di bawah ini:. Seperti yang ditunjukkan pada output, program memeriksa jalur nama file.txt, yang kami atur di parameter default.

memberikan nilai default untuk argumen

Menetapkan Persyaratan Argumen

Kami juga dapat menggunakan perpustakaan Argparse untuk mengatur persyaratan argumen, mis.e., apakah argumen akan diperlukan atau tidak. Untuk melakukannya, kita perlu menggunakan parameter yang diperlukan, seperti yang ditunjukkan pada kode di bawah ini.

import os import argparse parser = argparse.ArgumentParser(description = "Pemeriksa Keberadaan Jalur", penggunaan="cla.py path") parser.add_argument("--path", help="masukkan jalur untuk memeriksa apakah ada", default="nama filefile.txt", diperlukan=Benar) args = parser.parse_args() input_path = argumen.path jika input_path == Tidak ada: exit() elif os.jalan.isdir(input_path): print("Jalur Ada dan itu adalah direktori") elif os.jalan.isfile(input_path): print("Jalur Ada dan itu adalah file") else: print("Jalur tidak ada")

Saat menjalankan kode di atas tanpa argumen apa pun, Anda akan mendapatkan kesalahan yang mengatakan bahwa argumen berikut diperlukan:.

menetapkan persyaratan argumen

Jenis Argumen

Kami juga dapat mengatur Tipe Data yang digunakan dalam argumen. Misalnya, jika kita membutuhkan path, kita harus memberikan tipe data string. Jika pengguna memasukkan tipe data yang bukan string, Argparser akan mengubahnya menjadi string. Untuk mengatur tipe default untuk argumen, jalankan kode di bawah ini.

import os import argparse parser = argparse.ArgumentParser(description = "Pemeriksa Keberadaan Jalur", penggunaan="cla.py path") parser.add_argument("--path", help="input path untuk memeriksa apakah ada", type=str) args = parser.parse_args() input_path = argumen.path jika input_path == Tidak ada: exit() elif os.jalan.isdir(input_path): print("Jalur Ada dan itu adalah direktori") elif os.jalan.isfile(input_path): print("Jalur Ada dan itu adalah file") else: print("Jalur tidak ada")

Keluaran:

menentukan tipe data argumen

Kesimpulan

Ini hanya dasar-dasar parsing argumen menggunakan perpustakaan Argparse. Setelah melalui tutorial ini, disarankan untuk membaca dokumentasi resmi untuk mengeksplorasi lebih banyak trik menggunakan perpustakaan ini. Anda mungkin juga ingin melihat posting tentang menggunakan login python, yang sangat berguna untuk menulis aplikasi besar dan debugging mudah.

Cara Mengembangkan Game di Linux
Satu dekade yang lalu, tidak banyak pengguna Linux yang memprediksi bahwa sistem operasi favorit mereka suatu hari nanti akan menjadi platform game po...
Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...
Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...