Python 获取命令行参数
我试图在通过单击处理命令行参数之前获取它们:Python 获取命令行参数,python,python-click,Python,Python Click,我试图在通过单击处理命令行参数之前获取它们: print(click.get_current_context().find_root().params) 尽管我给出了脚本cmd1 cmd2--arg1--arg2 3,但这只打印空事件。我正在尝试获取一个字符串或列表,该字符串或列表将显示脚本、cmd1等 更新:看起来我可以访问sys.argv,我以为单击“消费”它,但看起来没问题。然而,我不知道这有多可靠,如果一些代码修改了它怎么办?我考虑将其作为元传递,但找不到调用GetCurrentCon
print(click.get_current_context().find_root().params)
尽管我给出了脚本cmd1 cmd2--arg1--arg2 3
,但这只打印空事件。我正在尝试获取一个字符串或列表,该字符串或列表将显示脚本、cmd1等
更新:看起来我可以访问sys.argv,我以为单击“消费”它,但看起来没问题。然而,我不知道这有多可靠,如果一些代码修改了它怎么办?我考虑将其作为元传递,但找不到调用GetCurrentContext的好位置 我可以
- 脚本名称:使用
get\u current\u context().info\u name
- 使用以下内容作为字典传递参数:
get_current_context()。params
python3.6.8
环境中使用Click==7.0
代码:
程序输出:
python sample.py --count 2 --name "shovon"
sample.py
{'count': 2, 'name': 'shovon'}
我使用了来自的示例程序。为什么不从os.args获取它们?sys.argv可以工作,但前提是您可以相信应用程序中没有其他代码修改它。。。现在这就是我使用的是的,但由于某种原因,当你在嵌套上下文中时,这不起作用(正如你所看到的,你需要find_root(),这就是我尝试过的),你能试一试吗?
python sample.py --count 2 --name "shovon"
sample.py
{'count': 2, 'name': 'shovon'}