在寫pipeline的時(shí)候贪绘,經(jīng)常把python和R程序都整合進(jìn)bash腳本里,這樣比較方便,python和R怎么解析命令行參數(shù)的呢侈离?
- python的命令行解析方法
python最常用的命令行參數(shù)主要有兩個(gè):sys.argv和argparse.ArgumentParser.
1.1. sys.argv sys模塊中的argv是一種常用方法,用法如下圖所示:
運(yùn)行 python greet.py gouzi daming 得到:
這里argv[1]指的是第一個(gè)參數(shù)萨脑,argv[2]是第二個(gè)隐轩。而argv[0]則是指的這個(gè)python程序,即greet.py渤早。
如果這里只提供了一個(gè)參數(shù)的話职车,則會(huì)因?yàn)闆](méi)有argv[2]而報(bào)錯(cuò):
1.2 argparse
argparse是現(xiàn)在解析命令行參數(shù)的一個(gè)模塊,比原來(lái)的optparse更加方便鹊杖。主要使用方法如下:
通過(guò)add_argument來(lái)添加參數(shù)悴灵,required可選必須參數(shù)和非必須參數(shù)。這里添加了一個(gè)必須參數(shù)name和一個(gè)非必須參數(shù)name2骂蓖。
輸入python greet2.py -name gouzi -name2 daming 則返回:
輸入python greet2.py -name gouzi 則返回:
- R中的命令行參數(shù)解析方法
R中的命令行參數(shù)解析主要用commandArgs()积瞒。如下圖所示:
運(yùn)行Rscript greet.R gouzi 得到:
這里實(shí)際上第6位置才是咱們給的參數(shù),如果要想讓第一個(gè)位置是咱們的參數(shù)的話需要加一個(gè)trailingOnly=TRUE即可登下。
歡迎關(guān)注赡鲜!