python命令行参数模块argparse怎么使用
今天小编给大家分享一下python命令行参数模块argparse怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
Python中的argparse模块是一个命令行参数解析器,它可以让开发者轻松地编写用户友好的命令行界面。
argparse模块可以自动从命令行中解析出参数,将它们转化为Python中的对象,并提供一些额外的功能,如自动生成帮助文档、参数类型检查等。
argparse模块的核心是ArgumentParser类,使用这个类可以定义程序需要接收的参数和选项.
使用argparse的四个步骤
导入argparse包 ——import argparse
创建 ArgumentParser() 对象
调用add_argument() 方法添加参数
解析命令行的参数 ——使用 parse_args() 解析添加的参数
方法add_argument的参数:
def add_argument(self, *name_or_flags: str, action: Union[str, Type[Action]] = ..., nargs: Union[int, str] = ..., const: Any = ..., default: Any = ..., type: Union[(str) -> _T, (str) -> _T, FileType] = ..., choices: Iterable[_T] = ..., required: bool = ..., help: Optional[str] = ..., metavar: Union[str, Tuple[str, ...], None] = ..., dest: Optional[str] = ..., version: str = ..., **kwargs: Any) -> Action
例子
parser=argparse.ArgumentParser("python")parser.add_argument("-p", "--port",help="port to listen",type=int,nargs=5,dest="ports")args=parser.parse_args()print(args.ports,type(args.ports))
解释:
-p,–port,参数名称,help:帮助信息,type:参数被转换类型,nargs:读取命令行参数个数,多个参数被转化为列表,dest:解析后的参数名称
parser.add_argument("-p", "--port",help="port to listen",default=8080,type=int,dest="ports") args=parser.parse_args() print(args.ports,type(args.ports))
default:默认值
parser.add_argument("-p", "--port",help="port to listen",required=True,type=int,dest="ports")
required:是否为必选参数或可选参数
parser=argparse.ArgumentParser("python") parser.add_argument("-p", "--port",help="port to listen",required=True,type=int,dest="ports") parser.add_argument("-f","--flags",action="store_true") args=parser.parse_args() print(args.ports,type(args.ports),args.flags)
action: 当带有store_true时,你传入对应参数,则参数为真,否则为假,store_flase时则相反
parser.add_argument("-l",choices="12345")choices,参数l的取值只能是12345,1,2,3,4,5,12,123,1234等,不能是其它,不能乱序
以上就是“python命令行参数模块argparse怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341