Python - Не удается правильно прочитать шестнадцатеричный 0A - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь прочитать 2 байта за раз из файла в шестнадцатеричном формате.

f = open(filename, "rb+")


seekv = 0
x = 16
while x > 0:
     x = x-1
     f.seek(seekv)
     seekv = seekv + 1
     Nextb = binascii.hexlify(f.readline(2))
     print Nextb

Проблема в том, что если эти 2 байта равны 0a0a, он будет читать только один байт, 0a.Я подозреваю, что это как-то связано с тем, что 0x0A - это новая строка в ASCII, но этого не должно быть.

1 Ответ

0 голосов
/ 29 декабря 2018

Вы используете f.readline (2) вместо f.read (2)

readline собирается использовать один из этих 0a в качестве маркера, чтобы знать, где начинается новая строка.Если вы переключитесь на f.read (2), вы должны увидеть оба.

Вы действительно не должны использовать readline с двоичными данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...