Python 獲得命令行參數(shù)的方法

Python 獲得命令行參數(shù)的方法

如果想對(duì)python腳本傳參數(shù),python中對(duì)應(yīng)的argc, argv(c語(yǔ)言的命令行參數(shù))是什么呢彻坛?

需要模塊:sys

參數(shù)個(gè)數(shù):len(sys.argv)

腳本名: ? ?sys.argv[0]

參數(shù)1: ? ??sys.argv[1]

參數(shù)2: ? ? sys.argv[2]

test.py

1importsys

2print"腳本名:", sys.argv[0]

3foriinrange(1,len(sys.argv)):

4print"參數(shù)", i, sys.argv[i]

>>>python test.py hello world

腳本名:test.py

參數(shù) 1 hello

參數(shù) 2 world

python中使用命令行選項(xiàng):

例如我們需要一個(gè)convert.py腳本顷啼。它的作用是處理一個(gè)文件,并將處理后的結(jié)果輸出到另一個(gè)文件中踏枣。

要求該腳本滿足以下條件:

1.通過(guò)-i -o選項(xiàng)來(lái)區(qū)別參數(shù)是輸入文件還是輸出文件.

>>> python convert.py -i inputfile -o outputfile

2.當(dāng)不知道convert.py需要哪些參數(shù)時(shí),用-h打印出幫助信息

>>> python convert.py -h

getopt函數(shù)原形:

getopt.getopt(args, options[, long_options])

convert.py

02importsys, getopt

03opts, args=getopt.getopt(sys.argv[1:],"hi:o:")

04input_file=""

05output_file=""

06

07forop, valueinopts:

08ifop=="-i":

09input_file=value

10elifop=="-o":

11output_file=value

12elifop=="-h":

13usage()

14sys.exit()

代碼解釋?zhuān)?/p>

a)?sys.argv[1:]為要處理的參數(shù)列表钙蒙,sys.argv[0]為腳本名茵瀑,所以用sys.argv[1:]過(guò)濾掉腳本名。

b)?"hi:o:": 當(dāng)一個(gè)選項(xiàng)只是表示開(kāi)關(guān)狀態(tài)時(shí)仪搔,即后面不帶附加參數(shù)時(shí)瘾婿,在分析串中寫(xiě)入選項(xiàng)字符。當(dāng)選項(xiàng)后面是帶一個(gè)附加參數(shù)時(shí)烤咧,在分析串中寫(xiě)入選項(xiàng)字符同時(shí)后面加一個(gè)":"號(hào)偏陪。所以"hi:o:"就表示"h"是一個(gè)開(kāi)關(guān)選項(xiàng);"i:"和"o:"則表示后面應(yīng)該帶一個(gè)參數(shù)煮嫌。

c)?調(diào)用getopt函數(shù)笛谦。函數(shù)返回兩個(gè)列表:opts和args。opts為分析出的格式信息昌阿。args為不屬于格式信息的剩余的命令行參數(shù)饥脑。opts是一個(gè)兩元組的列表。每個(gè)元素為:(選項(xiàng)串,附加參數(shù))懦冰。如果沒(méi)有附加參數(shù)則為空串''灶轰。

getopt函數(shù)的第三個(gè)參數(shù)[, long_options]為可選的長(zhǎng)選項(xiàng)參數(shù),上面例子中的都為短選項(xiàng)(如-i -o)

長(zhǎng)選項(xiàng)格式舉例:

--version

--file=error.txt

讓一個(gè)腳本同時(shí)支持短選項(xiàng)和長(zhǎng)選項(xiàng)

getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刷钢,一起剝皮案震驚了整個(gè)濱河市笋颤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌内地,老刑警劉巖伴澄,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阱缓,居然都是意外死亡非凌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)荆针,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)敞嗡,“玉大人,你說(shuō)我怎么就攤上這事航背〗胀祝” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵沃粗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我键畴,道長(zhǎng)最盅,這世上最難降的妖魔是什么突雪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮涡贱,結(jié)果婚禮上咏删,老公的妹妹穿的比我還像新娘。我一直安慰自己问词,他們只是感情好督函,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著激挪,像睡著了一般辰狡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垄分,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天宛篇,我揣著相機(jī)與錄音,去河邊找鬼薄湿。 笑死叫倍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的豺瘤。 我是一名探鬼主播吆倦,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼坐求!你這毒婦竟也來(lái)了蚕泽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瞻赶,失蹤者是張志新(化名)和其女友劉穎赛糟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體砸逊,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡璧南,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了师逸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片司倚。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖篓像,靈堂內(nèi)的尸體忽然破棺而出动知,到底是詐尸還是另有隱情,我是刑警寧澤员辩,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布盒粮,位于F島的核電站,受9級(jí)特大地震影響奠滑,放射性物質(zhì)發(fā)生泄漏丹皱。R本人自食惡果不足惜妒穴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摊崭。 院中可真熱鬧讼油,春花似錦、人聲如沸呢簸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)根时。三九已至瘦赫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啸箫,已是汗流浹背耸彪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忘苛,地道東北人蝉娜。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像扎唾,于是被迫代替她去往敵國(guó)和親召川。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • getopt:和C中的getopt()等價(jià)胸遇。optparse:2.7后已不推薦使用荧呐。argparse:基于optp...
    顧慎為閱讀 8,681評(píng)論 1 10
  • 需求:在命令行中通過(guò)參數(shù)控制日志的輸出級(jí)別 思路分析: 1.如果想要通過(guò)命令行傳入?yún)?shù),那么就要在被執(zhí)行文件中寫(xiě)入...
    古佛青燈度流年閱讀 3,277評(píng)論 0 0
  • 我們?cè)趯?xiě)一個(gè)可變性比較大的腳本時(shí)候纸镊,很多情況下我們需要傳入很多個(gè)不同的參數(shù)倍阐,就像我們?cè)诮K端輸入pip --help...
    迷路的南南見(jiàn)鳥(niǎo)閱讀 1,799評(píng)論 0 0
  • http://python.jobbole.com/85231/ 關(guān)于專(zhuān)業(yè)技能寫(xiě)完項(xiàng)目接著寫(xiě)寫(xiě)一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,547評(píng)論 1 118
  • 【今日話題】 你人生中遇到的最大的“困難”是什么?你是怎么挺過(guò)來(lái)的逗威? 回首這么多年來(lái)遇到最大的困難 貌似是前年父...
    控心_ebed閱讀 147評(píng)論 0 0