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