保存很容易。您有很多选择,但主要有两个:
1) 泡菜模块
https://docs.python.org/2/library/pickle.html
在 C 代码上构建(默认情况下,在 Python3x 中),这是序列化对象和恢复对象的一种非常快速的方法。为文件使用唯一名称,并查看“转储”和“加载”方法。
从文档中,这个示例应该可以帮助您入门:
# Save a dictionary into a pickle file.
import pickle
favorite_color = { "lion": "yellow", "kitty": "red" }
pickle.dump( favorite_color, open( "save.p", "wb" ) )
# Load the dictionary back from the pickle file.
favorite_color = pickle.load( open( "save.p", "rb" ) )
# favorite_color is now { "lion": "yellow", "kitty": "red" }
在 tkinter 中,这个(tkFileDialog)
http://tkinter.unpythonic.net/wiki/tkFileDialog
应该可以帮助您创建一个用于选择文件位置的对话框。这是一个很好的用法示例:
Opening File (Tkinter)
2) 自己加载/保存和解析文件
您说您的游戏是用于学习目的,因此通过手动文件 io 来做事不是一个坏主意。文档有一个很好的起点,使用“open”作为处理文件的主要功能。同样,“无限”文件只是意味着为每个文件使用唯一的名称
https://docs.python.org/2/tutorial/inputoutput.html
手动io的例子是
# writing data to a file
favorite_colors = {'tim':'yellow','mary':'blue'}
newsave_file = open(filename,'w')
for key, val in favorite_colors.items():
newsave_file.write(str(key)+'|'+str(val)+'\n')
newsave_file.close()
# reading data from a file
favorite_colors = {}
open_file = open(filename,'r')
for line in open_file:
pair = line.split('|')
favorite_colors[pair[0]] = pair[1]
open_file.close()
您可能想要使用 try/catch 块来确保程序不会崩溃,或者使用更复杂的解析器技术。这完全取决于你!