1.命令行参数传递的作用
命令行参数传递为程序提供了多种好处,包括:
-
灵活性:通过命令行参数,用户可以在每次运行程序时改变程序的行为,而不需要修改代码。
-
自动化与批处理:命令行参数使得脚本和程序更容易被自动化工具、批处理文件或其他脚本调用,并传递不同的参数。
-
简化配置:对于一些简单的程序或任务,使用命令行参数可能比创建和读取配置文件更为直观和简单。
-
即时的帮助文档:使用像
argparse
这样的库,你可以为每个参数提供描述,从而当用户需要帮助时,他们可以直接在命令行中获得参数的信息。 -
可移植性:命令行参数在不同的操作系统和环境中都有一致的概念和行为,这增加了代码的可移植性。
-
明确性:当从命令行启动程序并提供参数时,明确指定的参数值可以使操作更为透明,这对于日志记录和故障排查非常有帮助。
-
快速原型开发和测试:在开发阶段,程序员可以快速地运行程序,使用不同的参数来测试不同的场景或功能。
-
减少错误:通过对命令行参数设置类型和有效性检查,如
argparse
库所提供的,可以确保用户提供的输入是合法和期望的,从而减少运行时错误。 -
整合与其他工具:许多现代的开发、部署和监控工具都利用命令行接口进行操作。命令行参数提供了一个标准化的方法,使得你的程序或脚本可以与这些工具无缝地集成。
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作为参数传到方法中得出结果