社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】Python命令行参数解析神器:argparse

机器学习初学者 • 1 年前 • 158 次点击  

公众号:尤而小屋
作者:Peter
编辑:Peter

argparse是用来解析命令行参数的Python库。当我们在代码中自定义了参数,使用该库能够自动解析出来。

未使用argparse

比如我们现在想通过一个函数来实现打印某个人的个人信息。如果不使用argparse,我们可以这样写:

def main():
    name = input("input your name: ")
    age = input("input your age: ")
    height = input("input your height: ")
    
    print(f"My name is {name}{age} years old and I'm {height}.")
    
    return None


if __name__ == "__main__":
    main()

后面你在运行的时候需要每次输入不同的数据来运行这个功能:

使用argparse

import argparse

def main():
    # 创建参数
    parser = argparse.ArgumentParser(description="Argparses使用说明")   # 调用ArgumentParser类,并添加描述说明
    parser.add_argument('-n','--name',default="Peter")   # 添加不同的参数  -n表示参数的简写 --name表示全称 default后面跟的是默认值
    parser.add_argument('-y''--year',default="18")
    parser.add_argument('-t','--height',default='175')  
    
   # 实例化一个parser对象
    args = parser.parse_args()
    
   # 从实例化对象中调用不同的参数
    name = args.name
    year = args.year
    height = args.height
    
    # 使用参数执行print
    print(f'My name is {name},{year} years old. I am {height}')
    
if __name__ == '__main__':
    main()

保存成test.py文件。

1、在终端中直接运行语句,不带任何参数:运行结果就是默认值

2、带上参数执行:可以是全称也可以是简写

3、通过内置的-h还可以查看参数信息:

更多详细资料参考官网:https://docs.python.org/3/library/argparse.html

往期精彩回顾




  • 交流群

欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~(也可以加入机器学习交流qq群772479961



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/170593
 
158 次点击