我有一个SDF数据文件,以块格式存储变量名称和它们的值。
我在ipython中使用以下代码读取数据文件和变量:
变量名的输出如下:
现在,我希望将这个字符串用于赋值语句的右侧,例如:
如果我在标准Python程序中编写这一行,它会读取数据并将其分配给electronDensity。
但是,在我的模拟中,这些变量是动态创建的,并且可以使用上面写的
varNameList
中的值是变量的名称(字符串),对应着 sdf 文件中的一个数据块,只有通过给出这些变量名才能访问它。我在ipython中使用以下代码读取数据文件和变量:
import sdf
import numpy as np
dataFile = sdf.read('0010.sdf')
varNameList = dir(dataFile)
varSize = np.size(varNameList) #gives the array size
vName = 'dataFile.'+np.str(varNameList[51])+'.data'
变量名的输出如下:
In [71]:varNameList[51]
Derived_Number_Density_electron
In [72]:vName
'dataFile.Derived_Number_Density_electron.data'
现在,我希望将这个字符串用于赋值语句的右侧,例如:
electronDensity = dataFile.Derived_Number_Density_electron.data
如果我在标准Python程序中编写这一行,它会读取数据并将其分配给electronDensity。
但是,在我的模拟中,这些变量是动态创建的,并且可以使用上面写的
dir()
命令找到它们的名称。我无法创建与此等效的程序行。electronDensity = dataFile.Derived_Number_Density_electron.data
eval()
非常危险! - Remi Guan