命令行输入包argparse使用指南
使用建议
当选择使用命令行语句启动你的python程序时,通常表现为python从命令行语句获取输入。此时建议将python与命令行交互的代码写在一个类或函数中,并存放在独立的.py文件中,保证代码的高内聚和低耦合。
使用流程
导入argparse包。
1 | import argparse |
1 | parser = argparse.ArgumentParser() |
为parser增加若干个属性。
在命令行中即可通过属性对应输入参数。
下面的示例代码中,add_argument()
由四个参数组成:
1 | parser.add_argument('--graph_size', type=int, default=20, help="The size of the problem graph") |
- 属性名
xxx
:- 在属性名之前加上
--
,意味着这是个可选参数 - 在属性名参数之前增加一个参数,如
--gs
,即可达到简写的目的,此时程序内部依然是graph_size
,命令行中只要写--gs
即可。
- 在属性名之前加上
- 数据类型
type
:parser.add_argument
对于接受的值默认其为str,如果要将之视为int类型,额外加说明
- 默认值default
- 帮助help:
- 在命令行中输入
python xx.py -h
就可以得到帮助信息。非常实用,建议好好写各个属性的说明。
- 在命令行中输入
生成可实际实用的实例(简称opts)
1 | opts = parser.parse_args() |
该语句会把parser中所有”add_argument”属性和值给返回到opts子类实例当中,通过opts
就能获取命令行输入的内容。
对opts动动手脚
很多时候需要一些比较特殊或者比较复杂的参数,这些参数的值不直接来源于用户的命令行输入,比如来自本机环境和多种用户输入,此时需要你在代码中直接对opts进行调整。
1 | # 该属性值来自于当前环境是否存在多个GPU |
1 | # 该属性值需要对用户输入进行加工处理 |
将opts作为返回值返回
于是主程序就能接受命令行输入啦!
参考
《python和命令行之间的交互》https://www.cnblogs.com/still-smile/p/11636958.html 2019.10.8/2020.12.6