我想循环遍历变量值列表,将这些值传递给外部脚本并收集外部脚本操作的结果。我的目标是查看客观结果如何响应参数
的不同值import pandas as pd
import os
import winsound
import matplotlib.pyplot as plt
from statistics import stdev
from pandas import DataFrame
value_to_test=range(10,20)
values_list=list(value_to_test)
objective=0
parameter=1
for i in values_list:
parameter=i/10
runfile('C:/Users/AGL/systems/Systems/trade_functions.py', wdir='C:/Users/AGL/systems/Systems')
runfile('C:/Users/AGL/systems/Systems/system.py', wdir='C:/Users/AGL/systems/Systems')
print(parameter,objective)
system.py外部脚本根据参数值计算模型。最初,这个参数是从trade_functions.py作为静态浮点值导入的。现在我想以0.1的步长循环遍历参数值列表- 1 t- 2。但是由于某些原因,python在每次计算循环时都无法将参数值传递给外部脚本(system.py) ....我在每个循环步骤中得到相同的目标输出:
1.0 1
1.1 1
1.2 1
1.3 1
1.4 1
1.5 1
1.6 1
1.7 1
1.8 1
1.9 1
如果您拥有这些外部脚本,您可能会以另一种方式进行:您的脚本应该是由函数组成的外部模块,您可以从主脚本中导入这些函数以直接运行它们。
让我用一个例子来说明这一点。
在您的文件夹中,您可能必须将文件分开:main-file.py
和trade_functions.py
。第二个是外部脚本:
def my_first_function(param1, param2):
# (enter code here)
return result1
def my_first_function(param1, param3):
# (enter code here)
return result2
然后,在主代码中,导入两个函数并直接启动它们:
import pandas as pd
import os
import winsound
import matplotlib.pyplot as plt
from statistics import stdev
from pandas import DataFrame
from trade_functions import function1, function2
value_to_test=range(10,20)
values_list=list(value_to_test)
objective=0
parameter=1
for i in values_list:
parameter=i/10
# I do not know your functions, so these ar simple examples
# The point is that you can use any parameter as you need
res1 = function1(i, parameter)
res2 = function2(i, objective)
print(parameter,objective)