在Python中以循环方式运行命令行参数

在Python中以循环方式运行命令行参数,python,function,loops,command-line-arguments,Python,Function,Loops,Command Line Arguments,我有一个从模块调用函数并使用命令行参数(sys.argv)的程序。我想使用这些参数的不同值集多次调用此函数。我基本上是在尝试使用循环来运行它,但它不起作用: test_args = [[1,2,3],[4,5,6],[7,8,9]] i = 0 while i < len(test)args)+1: sys.argv = test_args[i] module.function() i=i+1 test_args=[[1,2,3],[4,5,6],[7,8,9]]

我有一个从模块调用函数并使用命令行参数(sys.argv)的程序。我想使用这些参数的不同值集多次调用此函数。我基本上是在尝试使用循环来运行它,但它不起作用:

test_args = [[1,2,3],[4,5,6],[7,8,9]]
i = 0
while i < len(test)args)+1:
    sys.argv = test_args[i]
    module.function()
    i=i+1
test_args=[[1,2,3],[4,5,6],[7,8,9]]
i=0
而i
我尝试了for循环,甚至while循环,但迭代在第一次迭代后停止。虽然第一次迭代成功运行,但没有继续下一次迭代,即i=i+1


有没有办法在循环中运行此功能?

我希望这就是您试图实现的目标

由于您没有提到模块中的
功能
。我创建了sum函数作为示例

这是密码

import sys #if you directly take input from system arguments
def addall(a):
    return sum(a)
test_args = [[1,2,3],[4,5,6],[7,8,9]]
for i in test_args:
    print (i, addall(i))
输出:

[1, 2, 3] 6
[4, 5, 6] 15
[7, 8, 9] 24

谢谢你的回复。这里的模块是另一个python脚本(假设为-sample.py),该脚本中的函数(假设为-test())函数“test”不接受任何参数(如定义的那样),而是使用命令行参数,并使用argparser对其进行解析。基本上,动态生成模块“sample.py”所需的所有参数。现在的问题是,我希望sys.argv根据i和run in循环的值获取多个值,但它在运行一次后停止。我有点困惑,您期望的是什么。是否需要通过sys.args获取
n
输入数?如果是,您可以在程序中获取值作为输入并附加到列表中。也可以采用逗号分隔或制表符分隔的值。或者,你甚至可以将文件名作为参数传递,并在程序中进行处理。我想测试这12个参数的不同集合的函数。我已经在添加列表了。“test_args”是所有不同参数集的列表,或者简单地说,就是这样:test_args=[[a1,b1,c1,….l1],[a2,b2,c2,….l2],…[an,bn,cn,….ln]]。现在,在迭代时,第一次迭代应该采用[a1,b1,c1,…l1],第二次迭代应该采用[a2,b2,c2,…l2]等等。但我现在的代码sys.argv正确地将第一次迭代作为[a1,b1,c1,….l1],但在那里停止,不再继续。函数的定义方式是不带任何参数,即test()但是该函数使用argparser来解析命令行参数中提供的系统参数,从而动态生成参数。如果没有进入第二个循环,请尝试在顶部添加一个额外的循环(肯定是错误的方式)或正确检查您的函数(这可能是问题所在)