.text读取更改全局变量

时间:2014-10-06 23:10:08

标签: python python-3.x

所以我有一个玩家输入他/她的名字。该名称将写入文件。然后打开文件,读取并将全局变量更改为所述文件中的内容。这最终将成为我为一个班级开发的游戏的保存功能。

def nameWrite():
    text_file = open("name.txt", "w+")
    print('what u name')
    text_file.write(input())
    text_file.close()

def nameRead():
    text_file = open("name.txt","r")
    print ("This is the output in file:",text_file.read())
    global playerName
    playerName = text_file.read()
    text_file.close()

nameWrite()
nameRead()
print("You name is now:",playerName)

为什么这不会改变变量playerName

1 个答案:

答案 0 :(得分:0)

全局变量正在更新,只是没有更新到您认为应该更新的内容。

看看这段代码:

def nameRead():
    text_file = open("name.txt","r")                         # 1
    print ("This is the output in file:",text_file.read())   # 2
    global playerName
    playerName = text_file.read()                            # 3
    text_file.close()

当它执行时,会发生这种情况:

  1. 文件已打开
  2. 读取文件中的所有数据,并将文件指针移动到文件末尾
  3. 下次阅读时,没有更多数据需要读取,因此playerName是空字符串
  4. 除非您关闭并重新打开文件,否则无法从文件中读取两次,或使用seek函数将文件指针移回开头。