Python 列表确实包含添加到文件中的最新内容

Python List does include the most recent stuff added to the file

我一直在尝试通过让用户输入他们的首字母缩写来为游戏添加保存功能,这些首字母与他们的分数一起保存到一个文件中,这样它就可以像以前一样加载。 一开始它会询问他们的姓名首字母并将其保存到文件中,然后我想将该文件复制到列表中以便可以编辑乐谱,但是该列表不包括最新的姓名首字母和乐谱添加文件. 我不知道问题出在哪里,所以我添加了我所做的文件内容。

  Names.write('~~~') 
  Names.write('\n')
  Names.write(username_score)
  Names.write('\n')
  line = Names.readlines()
  print(line)
with open('Names.txt','r+') as Names:
  for line_number, data in enumerate(Names, start=1):
    if username in data:
      print(f"Word '{username}' found on line {line_number}")
      break
  print('data',data)
  print('line',line)
  line.pop(1)
  line.insert(1, username_score)
  print('line 2',line)

  for i in range(len(line)):
    Names.write(line[i])

我认为这是因为在您的第一个代码块中,您尝试先写入然后读取文件,而无需关闭并重新打开文件。 line = Names.readlines() 行应该在第二个代码块中,如下所示:

username_score = '200'
username = 'foo'

with open('Names.txt','w+') as Names:
    Names.write('~~~')
    Names.write('\n')
    Names.write(username_score)
    Names.write('\n')
    line = Names.readlines()
    print(line)

with open('Names.txt','r+') as Names:
  line = Names.readlines()
  print(line)
  for line_number, data in enumerate(line, start=0):
    if username in data:
      print(f"Word '{username}' found on line {line_number}")
      break
  print('data',data)
  print('line',line)
  line.pop(1)
  line.insert(1, username_score)
  print('line 2',line)

  for i in range(len(line)):
    Names.write(line[i])

这个完整示例应该很容易集成到您的代码中,如果您有任何问题,请发表评论。