使用控制代码而不是数字的文件
Files using control codes instead of numbers
level = 6
try:
with open('highscore.txt', 'r+') as frplus:
highscore = int(frplus.read())
if level > highscore:
frplus.truncate(0)
frplus.write(str(level))
except FileNotFoundError:
with open('highscore.txt', 'w') as fw:
fw.write(str(0))
我正在为我正在制作的游戏测试高分记录系统。
当我 运行 这样做时,我得到了错误代码:
ValueError:以 10 为底的 int() 无效文字:'\x005'
我做了一些研究,我认为出于某种原因,该文件正在打印 Unicode 控制代码而不是数字代码来读取文件。
我该如何解决这个问题?
你的问题实际上是你截断了文件而不是在文件的开头写入。这意味着文件的第一个字节是 0x00
,空字节。只需在 frplus.truncate(0)
之后添加 frplus.seek(0)
即可。您可能需要先删除现有文件才能运行。
level = 6
try:
with open('highscore.txt', 'r+') as frplus:
highscore = int(frplus.read())
if level > highscore:
frplus.truncate(0)
frplus.write(str(level))
except FileNotFoundError:
with open('highscore.txt', 'w') as fw:
fw.write(str(0))
我正在为我正在制作的游戏测试高分记录系统。
当我 运行 这样做时,我得到了错误代码: ValueError:以 10 为底的 int() 无效文字:'\x005'
我做了一些研究,我认为出于某种原因,该文件正在打印 Unicode 控制代码而不是数字代码来读取文件。
我该如何解决这个问题?
你的问题实际上是你截断了文件而不是在文件的开头写入。这意味着文件的第一个字节是 0x00
,空字节。只需在 frplus.truncate(0)
之后添加 frplus.seek(0)
即可。您可能需要先删除现有文件才能运行。