如何通过我的文本文件添加到字典

时间:2013-12-18 17:38:13

标签: python text dictionary

我的文本文件如下所示:

{'testyear3': 20, 'testyear6': '0', 'testyear5': '0', 'testyear4': '0'}

它总是看起来像这样,我不能改变文本文件的顺序或者在我的程序中它的放置方式,我写了一个用代码对文本文件做的字典

with open ("totals.txt", 'w') as f27:
  f27.write(str(totaldict))

因此,在程序结束时,文本文件总是恢复到上面的顺序。我将如何以文本格式将文本文件写入字典?或者我是否必须改变我写入文本文件的方式?

2 个答案:

答案 0 :(得分:4)

您想要更改将字典写入文本文件的方式。 JSON格式将更容易处理(使用json module):

import json

# saving
with open("totals.txt", 'w') as f27:
    json.dump(totaldict, f27)

# loading
with open("totals.txt", 'r') as f27:
    totaldict = json.load(f27)

但是,字典不保持任何特定的顺序;它们是按设计的无序集合。如果您想按特定顺序存储项目,则必须使用不同的数据结构(如列表),或者对信息进行排序并使用自定义格式。

答案 1 :(得分:0)

我使用python的原生解析器:

def read_dict( fname, src = None):
  if src is None :
    src = StringIO.StringIO(fname)
  src_global = { }
  locals =  {}
  comp_obj = compile(src, fname, 'exec')
  eval(comp_obj, src_global, locals)
  return locals

这会加载一个文件,并基本上对其进行解析,然后返回在解析过程中创建的局部变量。

您需要在代码前加上一些变量名,然后返回此变量而不是locals

当然它可能是一种矫枉过正,但我​​的文件中有很少的字典格式的python脚本。我想这是一种方法。