gpt4 book ai didi

python - 将字典写入文件,每个键/值对单独一行

转载 作者:行者123 更新时间:2023-11-28 21:49:04 30 4
gpt4 key购买 nike

我目前正在用 Python 编写帐户注册程序。该程序使用一个名为 players 的文件,该文件包含一个字典,其中包含与玩家用户名对应的键,其他信息(电子邮件、密码、年龄和性别)作为与相应键关联的数组.

accounts 字典的定义取决于 players 文件是否存在且为空。

def is_file_empty(filename):
return os.stat(filename).st_size == 0

def create_file(filename, mode = 'w'):
f = open(filename, mode)
f.close()

if os.path.exists('players'):
with open('players', 'r') as f:
if is_file_empty('players'):
accounts = {}
else:
accounts = ast.literal_eval(f.read())
else:
create_file('players')
accounts = {}

然后使用 Player 类中的函数将其写入文件。

def write(self):
accounts[self.name] = [self.email, self.password, self.age, self.gender]
with open('players', 'w') as f:
f.write(accounts)

它工作正常,但是,由于它的编写方式,它总是占据一行。我想尝试将每个键/值对写在字典中单独的一行中,但我完全不知道如何实现。

我该怎么做?

最佳答案

如果我可以建议一个不同的方法:使用现有的、简单的序列化方案,如 JSON 或 YAML,而不是手动滚动你自己的方案:

import json

try:
with open('players.json', 'r') as file:
accounts = json.load(file)
except (OSError, ValueError): # file does not exist or is empty/invalid
accounts = {}

# do something with accounts

with open('players.json', 'w') as file:
json.dump(accounts, file, indent=2)

关于python - 将字典写入文件,每个键/值对单独一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34069702/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com