在Python中通过文件命令操作变量

时间:2015-10-15 00:20:47

标签: python function file

我试图通过添加保存/加载功能(不幸地使用文件)来完成使用python的任务的最后润色。我定义了四个函数,并为每个函数编写代码,但我没有提出任何内容,因为它不想工作,我们的教师对文件的指令非常基本。

def savegame():
    f=open("savefile.txt","w")
    f.write(playeroneright/playeroneleft/playertworight/playertwoleft/playertworight/computerright/computerleft)
    f.close()

def opengame():
    f=open("savefile.txt")
    lines=f.readlines()
    playeroneright=lines[0]
    playeroneleft=lines[1]
    playertworight=lines[2]
    playertwoleft=lines[3]
    computerright=lines[4]
    computerright=lines[5]
    f.close()

def newgame():
    deletecontent("savefile.txt")
    f=open("savefile.txt","w")
    f.write(1)
    f.write(1)
    f.write(1)
    f.write(1)
    f.write(1)
    f.write(1)
    f.close()
    opengame()

def deletecontent(pfile):
    fn=pfile.name 
    pfile.close()

第一个函数(savegame)应该取每个变量,并将它的数值保存在游戏中当前保存的不同行上(游戏操纵变量,playeroneright等等)。它应该将它保存在savefile.txt文件中。

第二个函数(opengame)应该取当前保存在文件中的内容,并将该文件分配给变量,基本上是一个加载函数。

第三个功能(newgame)应该将游戏重置为起始点(所有变量都取值1),然后使用上述功能打开游戏。

最后一个函数(deletecontent)仅在第三个函数中用于清除文档,以便它可以分配所有新值。

这些是我到目前为止的尝试,而且我还不是很擅长文件,但我想把它们弄清楚一点。如果有人有任何想法(最好是简单的,如果可能的话),这将是非常棒的。谢谢!

1 个答案:

答案 0 :(得分:2)

只是为了让你去(不在这里做其他人的作业;)

def savegame(playerone_right, playerone_left, ....):
  f=open("savefile.txt","w")
  f.write(playerone_right + "\n")
  f.write(playerone_left + "\n")
  ...
  f.close()

“\ n”会导致换行(新行) +两个字符串连接它们。

一般情况下,你会选择其他方式pickle,json,...,但看起来你的例子中给出了所需的格式。

要真正使用在某处保存变量所需的函数,并将它们作为需要它们的参数赋予它们,或者使用global variables

要使用全局变量,请添加:

  global playeroneright, playeroneleft, playertworight, playertwoleft, playertworight, computerright, computerleft

使用此变量到每个函数的开头。 现在你不再需要将它们作为参数赋予它们,因为每个函数都可以使用全局变量。

这不是解决这个问题的最好办法,但如果不向你介绍更多模式,这应该是最简单的方法。