有成千上万个有关argparse的博客文章,这是一个内置的Python模块来制作自己的CLI。
为什么它比“从头开始”方法更好?
Argparse实际上是内置的,但我有时会读取重新发明轮子的python脚本。
不要误会我的意思。归根结底,您会做任何您想做的事,但是您可能不知道这个简单的模块可以节省数小时的工作。
CLI很难设计
为您的命令构建用户友好的接口可能很乏味。您可能必须处理各种情况:
- 所需的参数(与argparse添加参数时,可以使用
required=True
) - 可选参数
- 默认值
- 错误
- 不良输入
- 别名
- 文档(例如用法)
以及更多。您可以完全对此进行编码,但是在大多数情况下,使用ArgParse将更可读性和高效。
如何
让我们创建一个名为myscript.py
的文件,然后在内部写下以下内容:
#!/usr/bin/env python3
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Python Client")
parser.add_argument("--myoption", type=str, help="short description for myoption", default="default value")
args = parser.parse_args()
print(args.myoption)
然后,在终端中:
python3 myscript.py
python3 myscript.py --myoption="cool"
它是唯一的解决方案吗?
绝对不,这就是Python的美丽。有第三方库可以以各种可能的方式扩展命令行创建。
但是,内置的Argparse可以涵盖大多数需求,同时坚持本机模块,这有时更轻,更容易包含在您的项目中。