将字典拆分为原始格式 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]))
我有一个包含名称和数字的数据文件,例如:
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]))