运行从命令行提示的功能

时间:2013-07-29 15:04:49

标签: python unix input prompt

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

我正在寻找是否有一个类似于此的单线:

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

非常感谢你们。

2 个答案:

答案 0 :(得分:0)

您可以通过sys.argv列表将参数传递给python程序。它们以字符串形式传递,类似于C的{​​{1}}约定。

外壳:

argc,argv

myprog.py:

$ python myprog.py 1 2 1 1 2 4

正如您所看到的,我们正在使用import sys print [int(x) for x in sys.argv[1:]] 的所有成员,但除了之外的所有成员。第一个成员,如sys.argv中的argv[0],是程序名称。

如果你已经在你的python程序中定义了一些函数,你可以将它添加到文件的底部:

C

作为替代方案,如果您不想修改python程序,并且它已经从标准输入流中读取其输入,则可以使用shell编程:

if __name__ == '__main__':
    MyFunction([int(x) for x in sys.argv[1:]])

或者,取决于您的程序如何读取其输入:

echo 1 2 1 1 2 4 | python myprog.py 

答案 1 :(得分: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