如何加载文件并创建无限保存文件?

时间:2015-03-15 22:43:28

标签: python text tkinter save

所以,我正在python中创建一个小游戏来了解这个语言的更多信息,我有两个问题:

首先 - 每当玩家点击“新游戏”时,程序会创建一个新的保存文件吗?

第二 - 如何加载保存的文件?它们是文本文件,我不知道如何加载它们。将要保存的东西是数字硬币,健康,角色的名称和其他东西。玩家可以选择要加载哪个文件?

感谢您的关注。

1 个答案:

答案 0 :(得分:2)

节省很容易。你有很多选择,但主要有两个:

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块以确保程序不会崩溃或更复杂的解析器技术。这完全取决于你!