Python:保存加载打开和拆分文本文件

时间:2016-04-18 21:28:04

标签: python file python-3.3

问题 我有个问题。我正在使用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

2 个答案:

答案 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至少具有临时值。