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

如何在python中将数组保存到文件,python,arrays,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

我正在用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])

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

最简单的方法是使用一个

正如和@Christian Dean所说的,您要寻找的是序列化,Python有一个名为pickle的内置模块。就个人而言,因为这似乎是一个更简单的序列化用例,我建议使用cPickle,它的功能与pickle相同,但速度要快得多,因为它是用C编写的。这是关于如何使用它们序列化不同类型数据的指南。

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

我首选的简单序列化解决方案是
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']]
结果:

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']]

你有两个主要的选择。您可以以自定义格式存储列表中的每个元素。或者您可以使用将列表序列化为文件。顺便说一句,我们在python中称它们为列表,而不是数组。