Python 在函数中先写入文件再写入其他内容

Python 在函数中先写入文件再写入其他内容,python,python-3.x,list,file,turtle-graphics,Python,Python 3.x,List,File,Turtle Graphics,我有一个定义,它会写一个文件,把所有的字符和它们出现的地方放在一起,然后对它进行排序,我遇到了一个错误,我的一行代码不能做任何事情,因为文件中还没有写任何东西,我把文件写在这之前,它不会写,除非我注释掉排序它的部分 file = open("leaderboard.txt", "w+") def always_write_the_file(x): while x < len(collected_people): file

我有一个定义,它会写一个文件,把所有的字符和它们出现的地方放在一起,然后对它进行排序,我遇到了一个错误,我的一行代码不能做任何事情,因为文件中还没有写任何东西,我把文件写在这之前,它不会写,除非我注释掉排序它的部分

  file = open("leaderboard.txt", "w+")

  def always_write_the_file(x):
    while x < len(collected_people):
      file.write("%s %s\n" % (collected_people[x], collected_characters.count(collected_people[x])))
      x = x + 1
  
  always_write_the_file(x)

  x = 0

  with open("leaderboard.txt") as  f:
    leaderboard = f.read().splitlines()

  while x < len(collected_people):
    character_count_turtle.penup()
    character_count_turtle.goto(non_depth, depth)
    character_count_turtle.pendown()
    
    sorted_leaderboard = sorted(leaderboard, key=lambda x: int(x.rsplit(".", maxsplit=1)[-1]))

    
    character_count_turtle.write("%s" % (sorted_leaderboard[x]), font=("arial", int(leaderboard_size), "normal"))

    depth = depth - (int(leaderboard_size) + 2)
    x = x + 1
file=open(“leadboard.txt”、“w+”)
def始终写入文件(x):
而x
我得到的错误是

可能是因为文件中没有写入任何内容

这里肯定有写的东西


调用
open()
函数时,需要指定打开模式:

  with open("leaderboard.txt", "r") as  f:
    leaderboard = f.read().splitlines()
  def always_write_the_file(x):
    while x < len(collected_people):
      file.write("%s %s\n" % (collected_people[x], collected_characters.count(collected_people[x])))
      x = x + 1
请注意,在此函数中:

  with open("leaderboard.txt", "r") as  f:
    leaderboard = f.read().splitlines()
  def always_write_the_file(x):
    while x < len(collected_people):
      file.write("%s %s\n" % (collected_people[x], collected_characters.count(collected_people[x])))
      x = x + 1

请准确说明错误所在,“我遇到了这个错误,其中一行代码无法执行任何操作,因为文件中尚未写入任何内容”什么错误?提供完整的错误消息,包括堆栈跟踪。请始终提供一个你的编辑是伟大的,因为它传达了更多的信息,但请注意1)上传错误消息的图像不是伟大的。其他用户将无法搜索错误消息。相反,您可以引用它或将其格式化为代码。2) 您可以说
leadboard.txt
为空,并且
character\u data.txt
包含文本。请注意,打开文件时,必须调用
f.close()
,否则您将无法看到写入的内容。打开的<代码>。。。as f:
语句在
with
语句结束时隐式关闭文件。还请注意,您可能打算在代码中的with语句中编写
open(“leadboard.txt,'r')
,其中不指定打开模式。默认模式是读取二进制(
rb
),这可能是您不想要的。啊,我看这似乎可以解决问题,谢谢!请