【发布时间】:2021-05-20 05:14:51
【问题描述】:
我有一个定义,它将写入一个文件并放置所有字符及其出现然后对其进行排序,我遇到了这个错误,其中我的代码行无法执行任何操作,因为没有任何内容写入文件,我把文件写在这之前,它不会写,除非我注释掉它之后排序的部分
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
我得到的错误是
可能是因为没有写入文件...
这里肯定写了一些东西
【问题讨论】:
-
请准确说明出了什么问题,“我遇到了这个错误,我的代码行无法执行任何操作,因为尚未将任何内容写入文件”什么错误我>?提供完整的错误消息,包括堆栈跟踪。请始终提供minimal reproducible example
-
您的编辑很棒,因为它传达了更多信息,但请注意 1) 上传错误消息的图像不是很好。其他用户将无法搜索错误消息。相反,您可以引用它或将其格式化为代码。 2)你可以说
leaderboard.txt是空的,而character_data.txt有文字。 -
请注意,当您打开文件时,您必须调用
f.close(),否则您将无法看到您写入的内容。with open ... as f:语句在with语句结束时隐式关闭文件。另请注意,您可能的意思是在代码中的 with 语句中写入open("leaderboard.txt", 'r'),您没有指定打开模式。从this answer 开始,默认模式是读取二进制文件 (rb),这可能是您不想要的。 -
啊,我知道这似乎可以解决它,谢谢!
标签: python python-3.x list file turtle-graphics