python筆記 - getopt模塊

常配合sys模塊,用來處理命令行參數(shù)

常用方法:

  • getopt
  • GetoptError

  1. getopt(args, shortopts, longopts = [])用來處理命令行參數(shù)段多;GetoptError錯(cuò)誤處理

args:?????????一般格式是配合sys模塊的sys.argv
shortopts:??短格式(-)加字母 -p
longopts:???長(zhǎng)格式(--)加單詞 --port

#text.py

import sys
import getopt

try:
    opts,args = getopt.getopt(sys.argv[1:],"hp:u",["help","port=","url="])
    print(opts)
    print(args)
except getopt.GetoptError as err:
    print(str(err))

運(yùn)行:

> text.py -h
[('-h', '')]
[]
> text.py -p 80
[('-p', '80')]
[]
> text.py --url https://www.baidu.com
[('--url', 'https://www.baidu.com')]
[]
> text.py 8080
[]
['8080']
> text.py -k
option -k not recognized


  • opts,args = getopt.getopt(sys.argv[1:],"hp:u",["help","port=","url="])

opts:

一個(gè)兩元組的列表,每個(gè)元素為:( 選項(xiàng)串, 附加參數(shù)) ,如果沒有附加參數(shù)則為空串'' 家制。

args:

一個(gè)列表彬犯,包含那些沒有加‘-’‘--’的參數(shù)拐云,比如:80婿着,p

sys.argv[1:]:

過濾掉第一個(gè)參數(shù)(sys.argv[0]是當(dāng)前執(zhí)行腳本的名字授瘦,不算作參數(shù)的一部分)

"hp:u":

短格式參數(shù),':'表示后面帶一個(gè)參數(shù)竟宋。hp:u定義了三個(gè)短格式參數(shù):'h' 'p:' 'u'提完,'p:'代表p后面有一個(gè)值 -p 80

["help","port=","url="]:

長(zhǎng)格式參數(shù),'='表示后面帶一個(gè)參數(shù)丘侠。--port 8080


#text.py

import sys
import getopt

def usage():
    print("Usage: text.py -h help -p port -u URL")
    

try:
        opts,args = getopt.getopt(sys.argv[1:],'hp:u',['help','port=','url='])
        
except getopt.GetoptError as err:
        print(str(err))
        usage()
        sys.exit(0)

for o,a in opts:
    if o in ('-h','--help'):
        usage()
        sys.exit(0)
    elif o in ('-p','--port'):
        print("PORT")
    elif o in ('-u','--url'):
        print("URL")

運(yùn)行:

> text.py -h
Usage: text.py -h help -p port -u URL
> text.py -p 20
PORT
> text.py --url https://www.bilibili.com
URL
> text.py -p 80 --url https://www.bilibili.com
PORT
URL
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末徒欣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜗字,更是在濱河造成了極大的恐慌打肝,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秽澳,死亡現(xiàn)場(chǎng)離奇詭異闯睹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)担神,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門楼吃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妄讯,你說我怎么就攤上這事孩锡。” “怎么了亥贸?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵躬窜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我炕置,道長(zhǎng)荣挨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任朴摊,我火速辦了婚禮默垄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘甚纲。我一直安慰自己口锭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布介杆。 她就那樣靜靜地躺著鹃操,像睡著了一般韭寸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荆隘,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天恩伺,我揣著相機(jī)與錄音,去河邊找鬼臭胜。 笑死莫其,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耸三。 我是一名探鬼主播乱陡,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼仪壮!你這毒婦竟也來了憨颠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤积锅,失蹤者是張志新(化名)和其女友劉穎爽彤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缚陷,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡适篙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箫爷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嚷节。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖虎锚,靈堂內(nèi)的尸體忽然破棺而出硫痰,到底是詐尸還是另有隱情,我是刑警寧澤窜护,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布效斑,位于F島的核電站,受9級(jí)特大地震影響柱徙,放射性物質(zhì)發(fā)生泄漏缓屠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一护侮、第九天 我趴在偏房一處隱蔽的房頂上張望敌完。 院中可真熱鬧,春花似錦概行、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽业踏。三九已至,卻和暖如春涧卵,著一層夾襖步出監(jiān)牢的瞬間勤家,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工柳恐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伐脖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓乐设,卻偏偏與公主長(zhǎng)得像讼庇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子近尚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 之前一直在寫關(guān)于python的項(xiàng)目蠕啄,大部分工具都想運(yùn)行在命令行下面怎么辦呢?自行谷歌了一下戈锻,看到有一個(gè)getopt...
    吃雞蛋的肉閱讀 41,527評(píng)論 7 46
  • 需求:在命令行中通過參數(shù)控制日志的輸出級(jí)別 思路分析: 1.如果想要通過命令行傳入?yún)?shù)歼跟,那么就要在被執(zhí)行文件中寫入...
    古佛青燈度流年閱讀 3,293評(píng)論 0 0
  • Python 2.7 的語法記錄 字符串 格式化字符串采用百分號(hào)For example,location = "Z...
    研究路上閱讀 231評(píng)論 0 0
  • sys.argv sys.argv[0]是腳本文件的名字,如:test.py sys.argv[1:]是以空格分割...
    f9f73935e28c閱讀 21,116評(píng)論 0 0
  • getopt:和C中的getopt()等價(jià)格遭。optparse:2.7后已不推薦使用哈街。argparse:基于optp...
    顧慎為閱讀 8,699評(píng)論 1 10