将字典拆分为原始格式python

时间:2015-02-08 00:38:54

标签: python dictionary split

我有一个名称和数字的数据文件,例如:

james 343
john 343
peter 758
mary 343

然后我使用此代码将其转换为字典

userAccounts = {}
with open("E:\file.txt") as f:
    for line in f:
       (key, val) = line.split()
       userAccounts[key] = val

print userAccounts

newUserName = raw_input ("welcome, please enter your name, a number will be assigned to you")
userAccounts [newUserName] = 9999

print userAccounts

在将新人添加到字典后,我想在旧文件上写入新数据,但是它会将其作为字典写入,例如:

{'james': '343', 'john': '343', 'peter': 758, 'fred': '9999'}

然后当我再次运行程序时,它无法创建字典,因为文件格式不正确。

我想将数据拆分为原始格式以保存到文件中,这样我就可以继续运行程序并添加名称。

很抱歉,如果这很容易,我是新手编码,在线搜索已经杀了我。

2 个答案:

答案 0 :(得分:0)

只需打开文件并将每个键值对写入其中:

with open(r"E:\file.txt", 'w') as f:
    for key, value in userAccounts.items():
       f.write('{} {}\n'.format(key, value))

这使用str.format() method将您的键和值对放在一行,其间有空格,最后一行换行符,就像在原始文件中一样。

答案 1 :(得分:0)

with open("E:\file.txt", 'w') as f:
  for user in userAccounts:
    f.write('%s %s\n' % (user, userAccounts[user]))