这可能是一个基本问题,但不幸的是我在搜索时什么也得不到。
我有一个函数,当该函数在命令行上运行时,它使用 *args 来捕获参数。
基本结构如下:
def func(*args):
<code starts>
...
</code ends>
func("arg1", "arg2", "arg3")
这里的问题是,如果我在代码文件本身中传递参数,代码就可以正常工作,如上面的代码片段所示。我正在研究如何从命令行实际运行此代码,参数如下:
# python <file.py> arg1 arg2 arg3
为此,我知道我应该更改代码文件本身中的“func("arg1", "arg2", "arg3")' 行,但我不确定它是怎么回事。
谁能指出我该如何纠正这个问题。
非常感谢
注意:两种解决方案都有效,是的,两者都是一样的。很遗憾我不能同时接受这两个答案。
请您参考如下方法:
sys.argv[1:]将为您提供所有命令行参数列表。
因此您可以在代码中执行 func(*sys.argv[1:]) 以接收所有参数。但是,没有充分的理由使用可变参数 - 只需让函数接受列表 args 并直接传递 sys.argv[1:]。
