从文件中拆分字符串并分配变量

2024-05-16 00:33:34 发布

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

我正在做一个pygame,我试图添加一个高分功能,但我不太明白怎么做

我正在将姓名和分数保存到一个.txt文件中,如以下示例所示:

christian careaga: 500
c dubb: 400
swag master: 50

在.txt文件中,每个分数和名字都放在新行上

我想把每个分数分配给它自己的变量,就像这样

score1 = christian careaga: 500
score2 = c dubb: 400
score3 = swag master: 50

最好的办法是什么?你知道吗


Tags: 文件功能mastertxt示例名字pygame分数
2条回答

省去你自己的痛苦,使用一种更容易编写和解析的格式。^{} library将保存和加载数据,而无需额外的解析:

import json

# write highscores
with open('highscores', 'w') as hscores:
    json.dump(my_hiscores_structure, hscores, indent=4)

# load highscores
with open('highscores', 'r') as hscores:
    my_hiscores_structure = json.load(hscores)

通过使用indent=4,您可以写出一个可读性很强的结构。你知道吗

不要为文件中的每个分数创建变量,而是使用字典:

with open("scores.txt") as f:
    scores = {'score{}'.format(i) : line.strip() for i,line in enumerate(f,1)}

现在可以这样访问分数:

>>> scores['score1']
'christian careaga: 500'
>>> scores['score2']
'c dubb: 400'
>>> scores['score3']
'swag master: 50'

按排序顺序获取分数:

>>> for s in  sorted(scores.values(), key = lambda x: int(x.split()[-1]),
                                                                 reverse = True):
    print s
...     
christian careaga: 500
c dubb: 400
swag master: 50

相关问题 更多 >