【问题标题】:Typer python : Getting an Error "Error: Got unexpected extra argument (stringvalue)" when passing a string to my functionTyper python:将字符串传递给我的函数时出现错误“错误:获得意外的额外参数(字符串值)”
【发布时间】:2023-01-16 18:53:09
【问题描述】:

所以我试图使用 Typer 在 python 中制作一个待办事项列表 CLI 应用程序,我希望它在没有任务提供给它时​​显示一条消息。所以我将任务设置为默认值 None 但是当我将一个值传递给任务时,例如“驾驶”,我得到一个错误“有一个意外的额外参数” 关于如何修复此错误的任何建议,或者在没有参数传递给函数时显示错误的另一种解决方案 这是我的代码:

@app.command()
def add(priority:int, task="None"):
    if task=="None":
        print("Error: Missing tasks string. Nothing added!")
    else:
        dict1={}
        dict1.update({task:priority})
        filesize1= os.stat('output.pickle').st_size
        if filesize1==0:
            pf=open("output.pickle","wb")
        else:
            pf=open("output.pickle","ab")
        pickle.dump(dict1, pf)
        pf.close()
        pf=open("output.pickle","rb")
        dict2={}
        while 1:
            try:
                dict2.update(pickle.load(pf))
            except EOFError:
                break
        pf.close()
        dict3={k:v for k,v in sorted(dict2.items(),key= lambda v:v[1])}
        print('Added task: "'+task+'" with priority '+str(priority))
    
        file1=open("ls.txt","w+")
    
        i=1
        for  key,value  in dict3.items():
            file1.write(str(i)+". "+key+ " ["+str(value)+"]"+"\n")
            i=i+1

【问题讨论】:

    标签: python arguments command-line-interface command-line-arguments typer


    【解决方案1】:

    最近在0.7.0的typer版本遇到了同样的问题

    假设我们有一个名为 addition.py 的文件,并且有一个函数 add 装饰为 typer 命令。然后,我首先做的是检查 --help 标志会给我什么,我得到以下信息:

    在您的终端运行中:

    python addition.py --help
    

    在这里您看到 task 参数是可选的,必须以不同的方式传递。

    如果你运行:

    python addition.py 123456 --task "SOMETHING"
    

    那么当你有只有一个功能在你的addition.py 文件中

    如果您使用 @app.command() 装饰器还有其他功能,那么您必须在终端中指明功能名称

    python addition.py add 123456 --task "SOMETHING"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多