将字典拆分为原始格式 python

splitting a dictionary into original format python

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

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'}

然后,当我再次 运行 程序时,它无法创建字典,因为文件格式没有问题。

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

很抱歉,如果这很简单,我是编码新手,在线搜索答案让我丧命。

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

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

这使用 str.format() method 将您的键和值对放在一行中,中间有一个 space,末尾有一个换行符,就像在您的原始文件中一样。

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