问题
我有个问题。我正在使用w+
创建一个文件,如果它不存在,它会创建一个我需要的文本文件。然后使用w
保存文件。使用普通open("file.txt")
打开文件。有人可以快速解决它。我在这做错了什么?非常感谢!
我因为某种原因加载文件时出错,它不允许我将其拆分以使其成为变量。
当我删除w+
中的from file = open("file.txt", "w+")
def player()
时,一切正常。但如果文本文件不存在,它将不会创建新的文本文件,并且程序将无法加载。
def save():
file = open("file.txt", "w")
for i in myList:
file.write(i)
file.write(" ")
file.write(str(player))
file.write(" ")
file.write(str(turn))
print("Game Saved!")
def load():
# it can print the file text but does not print the variables theList, player, turn
file = open("file.txt")
for line in file:
theList, player, turn = line.split(" ")
print("Game Loaded!")
if player == "1" and turn == "0"
# example conditions, this is where i get error saying
# local variable 'player' referenced before assignment
def superplayer():
file = open("file.txt", "w+")
for line in file:
theList, player, turn = line.split(" ")
# and my code goes on
答案 0 :(得分:1)
您是否关闭过在每种方法中打开的文件? 处理文件的好方法是使用with语句:
with open('file.txt', 'w+') as file:
file.seek(0)
#Do your file handling here
...
您是否已检查文件中的正确信息,因为播放器未分配给?
在使用" w +"
读取之前,请尝试转到文件的开头。file.seek(0)
答案 1 :(得分:0)
你在if player == "1" and turn == 0
上留下了一个冒号。此外,在使用文件时,请尝试使用with
关键字,这样会使您的工作变得更加轻松。
此外,如果上述问题无法解决问题,请确保player
至少具有临时值。