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'}