2016-07-06 41 views
1

我有一个Python脚本,它需要输入〜20个参数。 我想每次运行这个脚本多次使用不同的参数值。 目前我使用的是基本的bash脚本像下面(有更多的参数和每个参数的更多不同的值)用不同的参数值多次运行python脚本的最佳方式

for com_adv_par18 in 0.288 0.289 
do 
    for com_adv_par19 in 0.288 0.289 
    do 
    for com_adv_par20 in 0.288 0.289 
    do 
    python alpha2.py $com_adv_par18 $com_adv_par19 $com_adv_par20 
    done 
    done 
done 

我现在担心,虽然,这不是做最优化的方式。编码和计算都是明智的。 你能否提出任何替代方法来插入参数并更高效地运行程序?

在此先感谢。

+0

为什么不直接导入脚本并使用给定的参数重复运行它的'main'函数(不管它叫什么)?请注意,你的bash循环正在顺序工作。 – MisterMiyagi

回答

1

您的问题的答案取决于很多事情 - 一个重要的因素是每个执行时间的长度。

如果你能重构alpha2.py脚本,这样就可以import它,那么你可以沿着这些线路使用Python包装脚本:

from alpha2 import do_something 
from itertools import product 

# define argument lists here, e.g. list1 = [0.288, 0.289], etc. 

for args in product(list1, list2, list3): 
    do_something(*args) 

每个执行仍将是连续的,但是这种方法的优点是你不会承受为每个参数组合加载一个新的python实例的开销。

+0

谢谢,这看起来正是我想要的。每次执行都不需要太多时间,因此可以顺序运行它。总执行时间大幅减少。 此外输入参数很容易操作。 –

相关问题