Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何加载文件并创建无限保存文件?_Python_Text_Tkinter_Save - Fatal编程技术网

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

Python 如何加载文件并创建无限保存文件?,python,text,tkinter,save,Python,Text,Tkinter,Save,因此,我正在用python创建一个小游戏,以进一步了解这种语言,我有两个问题: 首先-有一种方法可以让玩家每次点击“新游戏”时,程序都创建一个新的保存文件 第二,如何加载保存的文件?它们是文本文件,我不知道如何加载它们。将保存的内容包括数字硬币、健康、角色名称和其他内容。玩家可以选择要加载哪个文件 感谢您的关注。保存很容易。您有许多选择,但其中两个主要选择是: 1) pickle模块 在C代码上构建(默认情况下,在Python3x中),这是序列化对象并恢复它们的一种非常快速的方法。为文件使用唯

因此,我正在用python创建一个小游戏,以进一步了解这种语言,我有两个问题:

首先-有一种方法可以让玩家每次点击“新游戏”时,程序都创建一个新的保存文件

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


感谢您的关注。

保存很容易。您有许多选择,但其中两个主要选择是:

1) pickle模块

在C代码上构建(默认情况下,在Python3x中),这是序列化对象并恢复它们的一种非常快速的方法。为文件使用唯一的名称,并查看“dump”和“load”方法

从这些文档中,您可以开始以下示例:

# 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)

应该可以帮助您创建一个用于选择文件位置的对话框。下面是一个很好的使用示例:

2) 自己加载/保存和解析文件

你说过你的游戏是为了学习,所以通过手动文件io做事情不是个坏主意。使用“打开”作为处理文件的主要功能,文档有一个良好的开端。同样,“无限”文件仅仅意味着为每个文件使用唯一的名称

手动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块来确保程序不会崩溃,或者使用更复杂的解析器技术。那全靠你了

您使用的是哪种GUI?您可以保存任意数量的文件。你必须给每个人一个唯一的名字——你可以按顺序给他们编号。在Python中保存对象很容易,有关简单示例,请参见。