-1

我有一个用 .py 编写的文件,需要 6 个输入。

我正在寻找是否可以有一个类似这样的班轮:

python myprog.py(1,2,1,1,2,4) 

非常感谢你们。

4

2 回答 2

0

您可以通过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
于 2013-07-29T15:07:33.860 回答
0

在 myprog.py 中,添加以下代码:

import sys
myparams = [int(i) for i in sys.argv[1:]]
myFunc(*myparams)

现在,您应该可以从命令行执行此操作:

python myprog.py 1 2 1 1 2 4
于 2013-07-29T15:08:55.177 回答