日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的argparse模块

發布時間:2025/3/17 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的argparse模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用步驟:

1:import argparse????????#導入argparse模塊

2:parser = argparse.ArgumentParser()????????#創建實例

3:parser.add_argument()????????#添加命令行選項

4:parser.parse_args()????????????????#解析


?python的argparse模塊add_argument詳解

add_argument:讀入命令行參數,該調用有多個參數
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

name or flags:是必須的參數,該參數接受選項參數或者是位置參數(一串文件名)

copy

  • >>>?parser.add_argument('-f',?'--foo')????#選項參數?? >>>?parser.add_argument('bar')????????#位置參數

  • nargs: 當選項后接受多個或者0個參數時需要這個來指定
    比如-u選項接受2個參數

    >>>?parser.add_argument('-u',nargs=2)?? >>>?parser.parse_args('-u?a?b'.split())?? Namespace(u=['a',?'b'])




    當選項接受1個或者不需要參數時指定nargs=’?',當沒有參數時,會從default中取值。對于選項參數有一個額外的情況,就是出現選項而后面沒有跟具體參數,那么會從const中取值

    c

    >>>?parser.add_argument('-u',nargs='?')?? >>>?parser.parse_args(''.split())?? Namespace(u=None)?? >>>?parser.parse_args('-u?a'.split())?? Namespace(u='a')??>>>?parser.add_argument('-u',nargs='?',default='d')?? >>>?parser.add_argument('A',nargs='?',default='e')?? >>>?parser.parse_args(''.split())?? Namespace(A='e',?u='d')?? >>>?parser.parse_args('-u'.split())?? Namespace(A='e',?u=None)??>>>?parser.add_argument('-u',nargs='?',default='d',const='s')?? >>>?parser.add_argument('A',nargs='?',default='T',const='P')?? >>>?parser.parse_args(''.split())?? Namespace(A='T',?u='d')?? >>>?parser.parse_args('-u'.split())?? Namespace(A='T',?u='s')?? >>>?parser.parse_args('A'.split())?? Namespace(A='A',?u='d')




    而對于后面需要跟多個參數的情況(–foo a1 a2 a3…),則需要設置nargs=’*’copy

    >>>?parser.add_argument('-u',nargs='*')?? >>>?parser.parse_args('-u?a?b?c?d?e'.split())?? Namespace(u=['a',?'b',?'c',?'d',?'e'])

    nargs=’+'也和nargs=’*'一樣,但是有一個區別當’+'時少于1個參數(沒有參數)位置參數會報錯誤

    copy

    >>>?parser.add_argument('u',nargs='+')?? >>>?parser.parse_args(''.split())?? usage:?[-h]?u?[u?...]?? :?error:?too?few?arguments


    而‘*’會使用默認值

    c

  • >>>?parser.add_argument('u',nargs='*',default='e')?? >>>?parser.parse_args(''.split())?? Namespace(u='e')


  • default: 當參數需要默認值時,由這個參數指定,默認為None,當default=argparse.SUPPRESS時,不使用任何值

    copy

    >>>?parser.add_argument('u',nargs='*',default=argparse.SUPPRESS)?? >>>?parser.parse_args(''.split())?? Namespace()

  • type: 使用這個參數,轉換輸入參數的具體類型,這個參數可以關聯到某個自定義的處理函數,這種函數通常用來檢查值的范圍,以及合法性

  • >>>?parser.parse_args('-u',type=int)?? >>>?parser.add_argument('f',type=file)?? >>>?parser.parse_args('-u?2?aa'.split())?? Namespace(f='aa',?mode?'r'?at?0x8b4ee38>,?u=2)


    choices: 這個參數用來檢查輸入參數的范圍

    copy

  • >>>?parser.add_argument('-u',type=int,choices=[1,3,5])?? >>>?parser.parse_args('-u?3'.split())?? Namespace(u=3)?? >>>?parser.parse_args('-u?4'.split())?? usage:?[-h]?[-u?{1,3,5}]?? :?error:?argument?-u:?invalid?choice:?4?(choose?from?1,?3,?5)

  • required: 當某個選項指定需要在命令中出現的時候用這個參數


  • >>>?parser.add_argument('-u',required=True)?? >>>?parser.parse_args(''.split())?? usage:?[-h]?-u?U?? :?error:?argument?-u?is?required

  • help: 使用這個參數描述選項作用

    view plaincopy

  • >>>?parser.add_argument('-u',required=True,default='wowo',help='%(prog)s?for?test?sth(default:?%(default)s)')?? >>>?parser.print_help()????????????????????????????????????????????????????????usage:?[-h]?-u?U??optional?arguments:??-h,?--help??show?this?help?message?and?exit??-u?U????????for?test?sth(default:?wowo)

  • dest: 這個參數相當于把位置或者選項關聯到一個特定的名字

    copy

  • >>>?parser.add_argument('--str',nargs='*')?? >>>?parser.parse_args('--str?a?b?c'.split())?? Namespace(str=['a',?'b',?'c'])??>>>?parser.add_argument('--str',nargs='*',dest='myname')?? >>>?parser.parse_args('--str?a?b?c'.split())?? Namespace(myname=['a',?'b',?'c'])


  • metavar: 這個參數用于help 信息輸出中

    copy

    >>>?parser.add_argument('--str',nargs='*',metavar='AAA')?? >>>?parser.print_help()?? usage:?[-h]?[--str?[AAA?[AAA?...]]]??optional?arguments:??-h,?--help????????????show?this?help?message?and?exit??--str?[AAA?[AAA?...]]??>>>?parser.add_argument('str',nargs='*',metavar='AAA')?? >>>?parser.print_help()?? usage:?[-h]?[AAA?[AAA?...]]??positional?arguments:??AAA??optional?arguments:??-h,?--help??show?this?help?message?and?exit

    本文轉載自http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=21633169&id=4387657

    轉載于:https://blog.51cto.com/lzs66/1842682

    新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

    總結

    以上是生活随笔為你收集整理的python的argparse模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。