Python - 用替代exec动态创建变量
我听说使用exec是个非常糟糕的做法。
不过,我刚开始学python,想弄明白怎么动态地创建一堆全局变量(我知道这也是不太好的做法,但我们先解决一个问题吧)。
这个过程是这样的:先获取需要创建的当前变量列表(现在这些变量在一个CSV文件里),然后从这个列表中提取出唯一的ID,再通过把ID加到变量名后面来创建必要的对象,并把另一个CSV文件里的内容读进来。
import pandas as pd
def importtest():
ilist = pd.read_csv('Z:/fakepath/ID.csv')
for i in range(0, len(ilist['ID'].unique())):
tempID = ilist['ID'].unique()[i]
exec("variable%s = pd.read_csv('%s')" % (
str(tempID), 'Z:/fakepath/'+str(tempID)+'.csv'), globals())
i = i + 1
有没有其他更好的方法来动态创建或更新我需要的变量,让它们出现在全局范围内呢?
相关文章:
- 暂无相关问题
1 个回答
4
在 globals()
这个字典里,字符串形式的键对应的是变量名。所以,你不需要使用 exec
,可以直接把变量写入全局变量的哈希表中:
globals()["variable" + str(tempID)] = pd.read_csv('Z:/fakepath/'+str(tempID)+'.csv')