我正在研究Python3.2中的一个项目,因为我需要创建一个字典并自动分配从文本文件中读取的键和值。 大部分工作已经完成:
def loadDict(file,dictname):
with open(file,"r") as dict_file:
for i in range(sum(1 for line in open(file))):
line = dict_file.readline()
part0,part1 = "", ""
part0 = line.split("\:/")[0][1:(len(line.split("\:/")[0])-1)]
part1 = line.split("\:/")[1][1:(len(line.split("\:/")[1])-1)]
dictname[part0] = part1
dict_file.close()
我可以通过创建字典并分别调用函数来使用它:
test_dictinary = {}
loadDict("my_file","test_dictionary")
print(test_dictionary)
获得适当的结果。对我来说问题是:我需要在调用方法之前创建一个空字典。
如果有办法在该方法中自行创建一个全局字典,那我就更聪明了。那么
loadDict("my_file","test_dictionary")
将自动为我创建字典“test_dictionary”,我可以在其他方法中使用。 我也用fromdict尝试了同样的结果。 搜索功能在这里和谷歌没有给我任何解决方案(除了起源不起作用)。
编辑[社区解决方案]:
def loadDict(file,dictname):
helpdict = {}
with open(file,"r") as dict_file:
for line in dict_file:
part0 = line.split("\:/")[0][1:(len(line.split("\:/")[0])-1)]
part1 = line.split("\:/")[1][1:(len(line.split("\:/")[1])-1)]
helpdict[part0] = part1
globals()[dictname] = helpdict
答案 0 :(得分:0)
这是一种非常糟糕的编码方式,为什么不直接返回创建的字典?如果你真的想以编程方式创建全局变量,我想你可以使用globals
函数:
def fun():
globals()['a'] = 1
>> fun()
>> a
1