Python - Membuat Command Line Argument (argparse)
|Shares :

Python - Membuat Command Line Argument (argparse)

Bagi yang sering pakai Terminal di Linux atau cmd di Windows pasti akan sering bersentuhan dengan Command Line misal seperti

$ cd -h
$ sudo apt-get -h
$ dpkg --help
$ arp -a


Dengan python kita bisa membuat program untuk yang bisa dijalankan diterminal. Contohnya :

import argparse #module
def server_start(server,port):
    print "Starting %s...OK" % server
    print "%s port : %s " % (server,port)
    
def db_start(db,port):
    print "Starting %s...OK" % db
    print "%s port : %s " % (db,port)
def main():
    
    #create Instance parser
    parser = argparse.ArgumentParser(description="Program start Server")
    
    parser.add_argument(
        "--server",
        type = str,
        required = True,
        help = "Your Server (apache,nginx etc)"    
    )
    
    parser.add_argument(
        "--server_port",
        type = int,
        default = 80,
        help = "Your Server port"    
    )
    
    parser.add_argument(
        "--db",
        type = str,
        required = True,
        help = "Your Database (mysql,oracle etc)"    
    )
    
    parser.add_argument(
        "--db_port",
        type = int,
        default = 3060,
        help = "Your Database port"    
    )
     #make the parser
    args = parser.parse_args()
     #call function
    server_start(args.server,args.server_port)
    db_start(args.db,args.db_port)
if __name__ == '__main__':
    main()

ketika kita membuat program/kode parser, maka secara default kita bisa menggunakan perintah -h atau --help untuk menampilkan bantuan

$ python parser.py -h 

atau 

$ python parser.py --help

maka outputnya 

Program start Server
optional arguments:
  -h, --help       show this help message and exit
  --server SERVER  Your Server (apache,nginx etc)
  --db DB          Your Database (mysql,oracle etc)

perhatikan bahwa sesuai yang koda koding, Command Line program kita

memerlukan dua argument yaitu --server dan --db

Jika kita jalankan program tanpa argument apa-apa

$ python parser.py

maka akan muncul pesan sebagai berikut

usage: parser.py [-h] --server SERVER --db DB
parser.py: error: argument --server is required

Dengan kode yang kita buat seperti diatas kita mengharuskan User untuk

menggunakan Command line seperti berikut:

$ python parser.py --server=apache --server_port 81 --db mysql --db_port=3030 

atau (tanpa pakai = operator)

$ python parser.py --server apache --server_port 81 --db mysql --db_port 3030


Command Line Argument Detail

Secara umum untuk membuat argument kita bisa tempuh dengan cara berikut :

1. Positional Command line argument

   p.add_argument("input_dir", ...)
   p.add_argument("input_dir","output_dir" ...)

   Artinya argument input_dir wajib berada pada posisi pertama

   dan selanjutnya output_dir wajib berada pada posisi kedua. jadi kita harus

   jalankan diterminal seperti ini : 

  # $ python example.py {path/to/input} {path/to/output}
  $ python example.py /home/gambar/asli /home/gambar/copian


2. Optional command line argument

    Karena Optional, kita bisa menempatkan argument kita dimana saja

    saat eksekusi.Oleh karena itu Optional Argument harus ditambahkan

    tanda "-" atau "--" 

    Contoh:

$ python parser.py --db=mysql --db_port=3021 --server=apache --server_port=81

    perhatikan bahwa posisi nya bebas (berbeda seperti contoh sebelumnya)

Pada contoh diatas juga kita melihat semuanya Argument nya pakai tanda "--" yang     sebenarnya berati Command panjangnya . itu bisa kita singkat dengan menambahkan Argument bertanda "-"

parser.add_argument(
        
        "-s",
        "--server",
        type = str,
        required = True,
        help = "Your Server (apache,nginx etc)"    
    )

--server bisa kita aliaskan atau perpendek dengan -s sehingga eksekusinya bisa jadi seperti ini

python parser.py -s=apache --server_port 81 --db mysql --db_port=3030

Sama halnya dengan --help yang diperpendek dengan -h


Atribute Parser

parser.add_argument(
    "--server",
    type = str,
    required = True,
    help = "Your Server (apache,nginx etc)"    
)

pada contoh diatas type,required,help adalah Atribute. Berikut adalah Atribute-atribute utama

yang sering digunakan dalam .add_argument()

  help

    help adalah String yang bisa kita pakai untuk informasi tambahan pada suatu Argument.

    sangat dianjurkan untuk menambahkan atribute ini guna mempermudah user dalam menggunakan

    Command yang kita buat. Bisa diakses secara default dengan perintah -h atau --help  

  required

    Jika kita merasa suatu argument adalah wajib ada, maka bisa menggunakan atribut ini.

    required = True

    jika kita set required, maka kita hanya pakai tipe no 2 taitu Optional command line argument

    karena Positional Argument sudah tentu wajib.    

  type

    type adalah tipe data dari nilai Argument. yang paling umum adalah : int,float,str.

    type = str   

  action

    Menjelaskan tentang apa yang akan terjadi bila Argument tertentu dijalankan. biasanya akan

    menyimpan Value tertentu. Yang paling umum dipakai adalah

    action='store_true' yang akan menyimpan True value. contoh    

     parser.add_argument(
        "--install",
        action='store_true',
        help = "Install or not ?"    
    )

    jika user menambahkan --install di Command Line nya, maka secara default value dari

    args.install adalah True dan False jika sebaliknya  

    dan action='store_false'  ini kebalikan dari action='store_true'

    

   default

        default akan menyimpan value yang sejak awal. jadi ketika kita membuat argument    seperti  ini        

        parser.add_argument(
            "--db_port",
            type = int,
            default = 3060,
            help = "Your Database port"    
        )        

        maka jika kita tidak menambahkan --db di Command Line maka value args.db_port adalah 3060.

        default tidak disandingkan dengan required=True, karena kita tidak harus menambahkan default

        pada Argument tersebut tidak wajib di tulis di Command Line

               

  Attribute Lain (selengkapnya)     

  

Sekian, Semoga bermanfaat. Jika ada kekurangan/kuranf mengerti silahkah Komen dibawah

Tags : #python #basic #tutorial #parser #argparse


SHARES :


Budy K's Avatar

Sains & Teknologi Enthusiast, Software Developer. Check my profile!
> 75% komen akan dibalas. Mohon sabar ya. Simpan halaman ini dan cek kembali lagi

Comments

* Email will not be published


    Privacy .ToS .Contact Us
    © 2017 Teknosains