如何在python中将数组保存到文件中

时间:2017-04-19 16:13:04

标签: python arrays

我正在为python中的游戏创建一个排行榜,我希望它能够保存它以便我可以在下次打开游戏时检索它。

Leader_board  = []
Temp_Leader_board = []

PlayerName = str(No1+No2+No3+No4+No5+No6+No7+No8)
Array = [str(Deaths),PlayerName]
Temp_Leader_board.append(Array)
Leader_board = sorted(Temp_Leader_board, key=lambda player: player[0])

最后一行是将得分从最小到最大排序。

4 个答案:

答案 0 :(得分:1)

正如@matusko和@Christian Dean所说,你正在寻找的是序列化,Python有一个内置的模块叫做pickle。就个人而言,由于这似乎是一个更简单的序列化用例,我建议使用cPickle,它与pickle做同样的事情,但速度更快,因为它是用C. See here编写的,用于指导如何使用它们序列化不同类型的数据。

答案 1 :(得分:1)

我简单序列化的首选解决方案是yaml。它具有人类可读的优点,但缺点是只能序列化简单的数据结构。看起来它在这种情况下可以正常工作:

测试代码:

leader_board = [
    [30, 'Player A'],
    [10, 'Player B'],
]

import yaml

# save the leader board
with open('LeaderBoard.yml', 'w') as f:
    f.write(yaml.dump(leader_board))

# read the leader board from yaml file
with open('LeaderBoard.yml', 'r') as f:
    read_leader_board = yaml.load(f.read())

# show yaml format and restored data
print(yaml.dump(leader_board))
print(read_leader_board )

<强>结果:

- [30, Player A]
- [10, Player B]

[[30, 'Player A'], [10, 'Player B']]

答案 2 :(得分:0)

最简单的方法是使用pickle

答案 3 :(得分:0)

听起来您正在寻找一种序列化列表的方法,以便将其保存到文件中,然后稍后再回读。对于序列化python对象,可以使用python模块picklereference page)。有关撰写和阅读文件的信息,请查看here