我试图弄清楚是否可以避免在这里使用exec()
,但是我真的不确定如何做。
我要读取的每个文件都有一个字符串(从技术上说,这是从hdf5文件读取的字节,但是我使用.decode("utf-8")
来获取字符串)。我想提取变量名称和变量值,它们在文件中显示为
... \ r \ nVariable = Time; \ nValues = 1.200000E0; \ n#CurrentVariables ...
我想提取它并以Time = 1.2的形式保存到我的工作区中。我已经做到了:
#temp is my string
var='Variable='
val = 'Value='
curvar = 'Current Variables'
id1 = temp.find(var)
id2 = temp.find(val)
id3 = temp.find(curvar)
varname = temp[id1+len(var):id2-2]
varval = temp[id2+len(val):id3-4]
这给了我varname ='Time'和varvar ='1.200000E0'。有没有一种方法可以将其保存为变量(变量并非总是时间,所以我不只是想将值保存到变量中)。在matlab中,我只会使用(varname = varval),但我不确定正确的用法是什么,因为exec(varval = varname)表示exec()不使用关键字参数。
还是有一种更好的方法,而不使用exec。