命令行参数传递(命令行解析)

 1.命令行参数传递的作用

命令行参数传递为程序提供了多种好处,包括:

  1. 灵活性:通过命令行参数,用户可以在每次运行程序时改变程序的行为,而不需要修改代码。

  2. 自动化与批处理:命令行参数使得脚本和程序更容易被自动化工具、批处理文件或其他脚本调用,并传递不同的参数。

  3. 简化配置:对于一些简单的程序或任务,使用命令行参数可能比创建和读取配置文件更为直观和简单。

  4. 即时的帮助文档:使用像argparse这样的库,你可以为每个参数提供描述,从而当用户需要帮助时,他们可以直接在命令行中获得参数的信息。

  5. 可移植性:命令行参数在不同的操作系统和环境中都有一致的概念和行为,这增加了代码的可移植性。

  6. 明确性:当从命令行启动程序并提供参数时,明确指定的参数值可以使操作更为透明,这对于日志记录和故障排查非常有帮助。

  7. 快速原型开发和测试:在开发阶段,程序员可以快速地运行程序,使用不同的参数来测试不同的场景或功能。

  8. 减少错误:通过对命令行参数设置类型和有效性检查,如argparse库所提供的,可以确保用户提供的输入是合法和期望的,从而减少运行时错误。

  9. 整合与其他工具:许多现代的开发、部署和监控工具都利用命令行接口进行操作。命令行参数提供了一个标准化的方法,使得你的程序或脚本可以与这些工具无缝地集成。

2.一个简单的案例

如下提供一个简单的例子来演示如何使用argparse。

假设我们有一个脚本,它需要两个参数:一个是姓名,另一个是年龄,并且我们想打印一条欢迎消息。

脚本内容 (greet.py):

import argparse


def main():
    # 创建解析器对象
    parser = argparse.ArgumentParser(description='简单的问候脚本')

    # 添加姓名和年龄参数
    parser.add_argument('--name', type=str, required=True, help='你的姓名')
    parser.add_argument('--age', type=int, required=True, help='你的年龄')

    # 解析参数
    args = parser.parse_args()

    # 打印欢迎消息
    print(f"你好,{args.name}!你已经{args.age}岁了。")


if __name__ == '__main__':
    main()

如何运行:cd到脚本所在的目录,然后在命令行中,你可以这样调用该脚本并传递参数: 

python greet.py --name 张三 --age 25

运行后,你将会看到输出:

你好,张三!你已经25岁了。

 即:

3.argparse模块用法实例详解

argparse模块是命令行选项、参数和子命令解析器。可以让人轻松编写用户友好的命令行接口。适用于代码需要频繁地修改参数的情况。

python之argparse模块常见用法包含实例(超详细)_python argparse 使用例子-CSDN博客

使用思路:

1)首先导入argparse模块import argparse
2)创建一个 ArgumentParser 对象,该对象包含将命令行输入内容解析成 Python 数据的过程所需的全部功能。description是该对象的描述信息,可使用python test_argparse.py -h命令查看
parser = argparse.ArgumentParser(description='Calculate volume of a cylinder')
3)添加需要输入的命令行参数
parser.add_argument('radius', type=int, help='Radius of cylinder')
()中依次为参数名;参数类型,声明这个参数的数据类型为int为了参与运算,默认数据类型为str;描述信息
4)args = parser.parse_args() ArgumentParser 通过 parse_args() 方法解析参数,获取到命令行中输入的参数。
5)将获取到的半径和高度args.radius, args.height作为参数传到方法中得出结果
 

猜你喜欢

转载自blog.csdn.net/m0_55196097/article/details/133324102