argparse是python的一个命令行参数模块,可以解析命令行参数,生成帮助等。
你可以这样使用它:
- #!/usr/bin/python
- fromargparseimportArgumentParser
- p=ArgumentParser(usage='itisusagetip',description='thisisatest')
- p.add_argument('--one',default=1,type=int,help='thefirstargument')
- p.add_argument('--two,default=2,type=int,help='thesecondargument')
- p.add_argument('--docs-dir,default="./",help='documentdirectory')
- args=p.parse_args()
- #可以打印出来查看
- printargs
- #打印某一个参数
- printargs.one
- printargs.docs_dir#经过parse_args()函数后参数名称去掉了前面的"--",所有的"-"转换为"_"
这个文件的名称叫做test.py , 你可以这样运行它:
./test.py
想要查看是否有哪些参数可以:
./test.py --help 或者 ./test.py -h
会打印出以下信息:
- usage:itisusagetip
- thisisatest
- optionalarguments:
- -h,--helpshowthishelpmessageandexit
- --oneONEthefirstargument
- --twoTWOthesecondargument
- --docs-dirDOCS_DIRdocumentdirectory
然后就可以带参数运行程序:
./test.py --one 10 --two 20 --docs-dir /opt/docs/
但是在这种情况下:“如果运行程序时带了一个不认识的参数”,就会报错:
./test.py --p 235
有时我们不希望这样,我们的需求是:只提取有用的参数,不认识的参数丢弃但并不需要报错".
这时程序可以这样写:
- #!/usr/bin/python
- importsys
- fromargparseimportArgumentParser
- p=ArgumentParser(usage='itisusagetip',description='thisisatest')
- p.add_argument('--one',default=1,type=int,help='thefirstargument')
- p.add_argument('--two,default=2,type=int,help='thesecondargument')
- p.add_argument('--docs-dir,default="./",help='documentdirectory')
- #这个函数将认识的和不认识的参数分开放进2个变量中
- args,remaining=p.parse_known_args(sys.argv)
- #可以打印出来查看
- printargs
- printremaining
再次运行程序:
./test.py --p 235
这个时候就会打印出: