社区所有版块导航
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

机器学习初学者 • 2 年前 • 385 次点击  

公众号:尤而小屋
作者: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

往期精彩回顾




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