用Python在文本文件中存储数据

2024-03-29 05:01:22 发布

您现在位置:Python中文网/ 问答频道 /正文

类似的问题也被问过,但没有一个像这样。在

我需要在一个文本文件中保存2条信息,用户名及其相关的健康整数。现在我需要能够查看该文件并查看用户,然后查看与它相关的值。我第一次打算用open('文本.txt'和'a')将新用户和整数追加到txt文件的末尾。在

我的主要问题是,如何确定哪个值连接到用户字符串?如果他们在同一条线上,我能做些什么吗?比如只读那一行的数字?在

你们有什么建议?如果这些都不起作用,我想我需要转到json。在


Tags: 文件字符串用户文本txt信息json数字
3条回答

如果已经在每一行中都有一个以key value形式编写的文本配置,则可以按如下方式解析配置文件:

user_healths = {}                              # start empty dictionary
with open("text.txt", 'r') as fh:              # open file for reading
    for line in fh.read().strip().split('\n'): # list lines, ignore last empty
        user, health = line.split(maxsplit=1)  # "a b c" -> ["a", "b c"]
        user_healths[user] = int(health)       # ValueError if not number

请注意,如果用户的健康状况多次出现,它将使其成为text.txt中列出的最后一个值,如果您总是将其附加到文件中,则这可能是您想要的

^{pr2}$

正在分析上面的text.txt

>>> print(user_healths)
{'user1': 200, 'user2': 150}

This可能就是你要找的。我建议一次读一行来解析文本文件。在

另一种方法是读取整个txt并使用类似于text_data.split("\n")的东西来分隔字符串,如果数据被行分隔(用'\n'表示),这种方法应该有效。在

您可能正在寻找configparser,它正是为此而设计的!在

构建新配置

>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.sections()
[]
>>> config['Players'] = {
...     "ti7": 999,
...     "example": 50
... }
>>> with open('example.cfg', 'w') as fh:
...     config.write(fh)  # write directly to file handler
...

现在读回去

^{pr2}$

检查书面文件

% cat example.cfg
[Players]
ti7 = 999
example = 50

相关问题 更多 >