#python #unicode
#питон #юникод
Вопрос:
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: недопустимый литерал для int() с основанием 10: ‘ x005’
Я провел некоторое исследование, и я думаю, что по какой-то причине файл печатает управляющие коды Unicode для чтения файла вместо цифровых кодов.
Как я могу это исправить?
Ответ №1:
Ваша проблема на самом деле заключается в том, что вы усекаете файл, но не записываете его в начале файла. Это означает, что первым байтом файла является 0x00
нулевой байт. Просто добавьте frplus.seek(0)
after frplus.truncate(0)
, и это должно сработать. Возможно, вам потребуется удалить существующий файл, прежде чем он заработает.