提问人:Michael 提问时间:11/11/2023 更新时间:11/12/2023 访问量:33
带有参数的 Python 单击 shell 命令
Python click shell command with arguments
问:
我正在尝试在 python 中使用 click-shell 构建命令行界面,但我无法弄清楚如何与命令一起提供输入。也就是说,假设我有一个名为 的函数/命令,它需要两个输入,并且在 cmd 上如何调用?目前,我所要做的就是调用函数本身的输入。sum
a
b
myapp > sum 2 3
这工作原理:
from click_shell import shell
@shell(prompt='myapp> ', intro='Command me!')
def myapp():
os.system("cls")
@myapp.command()
def sum():
a = input('enter num1 > ')
b = input('enter num2 > ')
r = float(a) + float(b)
print(f"{a} + {b} = {r}")
但我想要的是这样的:
@myapp.command()
def sum(a, b):
print(f"{a} + {b} = {float(a) + float(b)}")
因此,在CMD上,我所要做的就是:
myapp> sum 2 3
:> 2 + 3 = 5
myapp>
任何知道如何实现这一目标的人都请帮忙。关于使用更好包装的建议也被接受。
答:
0赞
Michael
11/11/2023
#1
我正在尝试各种方法,其中一种尝试是添加装饰器,它如我所愿。这里@click.argument
from click_shell import shell
import os, click
@shell(prompt='myapp> ', intro='Hello There! Enter your commands')
def myapp():
os.system("cls")
@myapp.command()
@click.argument('nums', type=float, nargs=-1)
def add(nums: list[float]):
print(f"sum = {sum(nums)}")
if __name__ == '__main__':
myapp()
任何更好的解决方案都会被接受
评论