我在 python 2.7.3 上。我编写了一个简单的代码来搜索字典键,当它找到由 定义的键时var_par
,它会迭代地从列表中替换新值array
:
var_par = 'B'
array = [1.4, 2.6, 4.8, 3.56]
params = {
"A": ["A part of", "#comment 1"],
"B": [1.2, "#comment 2"],
"C": ["the test run.", "#comment 3"]
}
for I in array:
if var_par in params: params[var_par][0] = I
execfile('script.py')
现在基本上我想做的和我的问题是:我想把我的params
字典放在一个单独的文件parameters.dat
中,然后做同样的事情,但是物理上B
改变给定键的值(在这种情况下是 for )在脚本执行之前由文件定义var_par
并保存文件。script.py
原因是该脚本从文件中读取其输入参数。
我尝试添加和玩弄
value_old = str(params[var_par][0])
value_new = str(I)
for key in fileinput.input("parameters.dat", inplace = 1):
print key.replace(value_old, value_new),
但是,我对这个添加的问题是,每当两者C
共享B
相同的值时,两者都会被更改为新值。(这当然是看到代码搜索值而不是给定 key 的逻辑var_par
。)否则它可以工作,但是对于代码来说当然没有这个缺陷是至关重要的,我目前还无法做到解决。另一方面,我有一种感觉,它一定不会那么困难,而且我很接近。
非常感谢您的任何意见。
附言。我是 python 初学者,所以我不是很擅长,但如果/需要时会尝试提供任何帮助。
谢谢!