Я читаю некоторые данные в кодировке utf-8 из файла, например:
with open (filename, 'rb') as f:
bytes= f.read(offset, length)
#bytes is b'hello\x00\x00\x00\x00'
text = bytes.decode('utf-8')
#text is 'hello '
stripped_text = text.strip()
#stripped_text is 'hello '
Вы можете воссоздать это с помощью простой строки, например
thing = b'hello\x00\x00\x00\x00'.decode('utf8').strip()
print(thing)
#the output is 'hello '
Как видите, завершающие нулевые символы не удаляются - я предполагаю, что это как-то связано с тем, что '\ x00' не распознается .strip (), но везде, где я смотрю, кажется, что так и должно быть. Что дает? Как я могу удалить этих персонажей без необходимости делать что-то очень неуклюжее?
Я не смог найти сообщение, посвященное этой проблеме.