我有一个用 .py 编写的文件,需要 6 个输入。
我正在寻找是否可以有一个类似这样的班轮:
python myprog.py(1,2,1,1,2,4)
非常感谢你们。
您可以通过sys.argv
列表将参数传递给您的 python 程序。它们作为字符串传入,类似于C
' 的argc,argv
约定。
壳:
$ python myprog.py 1 2 1 1 2 4
myprog.py:
import sys
print [int(x) for x in sys.argv[1:]]
如您所见,我们正在使用sys.argv
除第一个之外的所有成员。第一个成员,如argv[0]
in C
,是程序名称。
如果你已经在你的 python 程序中定义了一些函数,你可以将它添加到文件的底部:
if __name__ == '__main__':
MyFunction([int(x) for x in sys.argv[1:]])
作为替代方案,如果您不想修改您的 python 程序,并且它已经从标准输入流中读取了输入,您可以使用 shell 编程:
echo 1 2 1 1 2 4 | python myprog.py
或者,取决于您的程序如何读取其输入:
$ python myprog.py << woof
> 1
> 2
> 1
> 1
> 2
> 4
> woof
在 myprog.py 中,添加以下代码:
import sys
myparams = [int(i) for i in sys.argv[1:]]
myFunc(*myparams)
现在,您应该可以从命令行执行此操作:
python myprog.py 1 2 1 1 2 4