2016-07-06 89 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

謝謝,這看起來正是我想要的。每次執行都不需要太多時間,因此可以順序運行它。總執行時間大幅減少。 此外輸入參數很容易操作。 –

相關問題