2011-04-27 127 views
1

我正在用Python编写游戏,并且已经到了需要拯救玩家进度的方式。当玩家退出游戏时,我正在考虑让脚本创建一个文本文件并写几行(用于存储统计变量和房间号)。但我也需要它来检查该文件是否在启动时退出,如果是,则将存储的值应用于相应的变量。任何人都可以帮忙吗?Python游戏保存文件

回答

0
import os 
if os.path.exists('yourplayerfile'): 
    with open('yourplayerfile') as f: 
     # work with f 
with open('yourplayerfile','a') as f: 
    # update f 

这是您必须使用的提纲。

+0

感谢您的帮助! – 2011-04-27 04:57:46

+0

你不觉得检查文件是否存在有点不必要?毕竟,'a'会创建文件,如果它不存在。 – user225312 2011-04-27 05:03:40

+0

A - 我认为OP问他想在启动过程中检查文件。我应该把它当作是编辑它的一部分。 – 2011-04-27 06:50:49

4

两个不同的问题在这里:

  1. 什么存储在文件中,以及如何将其存储
  2. 时存储的逻辑,当加载

第一个问题是简单因为它更通用。这里有几个很好的选择:一个是使用Python的ConfigParser类,用于Windows .ini - 类似配置文件。或者,您可以使用pickle来简单地转储某种配置/设置数据结构(可能是嵌套字典)。然后是内置的SQLite绑定。还有其他的选择 - 这一切都取决于你想要的复杂程度。

第二个问题更具体到您的应用程序。您可以尝试在启动时打开配置文件,如果它在那里,请阅读它的内容。稍后,您可以定期将设置/进度存储在其中。一个忠告:在任何时候都要始终保持一组数据结构中的一组设置为一致的数据结构 - 即使只有部分设置在配置文件中(因为某些原因)出现在配置文件中,也需要使用默认值您的设置。

+1

+1为泡菜!这可能是现在的最佳选择。 – 2011-04-27 05:26:57

0

我建议你保存在sqlite或一些像这样的东西......但我不明白你的问题在哪里?保存文件或读取文件?

try: 
    f=open('/tmp/workfile', 'w') 
    # i find file 
except: 
    #there is no file 
<open file '/tmp/workfile', mode 'w' at 80a0960> 

... 阅读文档http://docs.python.org/release/2.5.2/tut/node9.html

+0

不,请使用'打开(文件)为f'代替。它更清洁。 – user225312 2011-04-27 05:03:07

+0

它需要做的是创建一个文件来存储决定玩家进度的变量,如果该文件已经退出,还需要检查启动时间,如果是这样,则将数据应用到玩家进度变量 – 2011-04-27 05:03:37

+0

尝试检查您的文件,如果剂量存在执行除外 – Efazati 2011-04-27 05:15:39