Как я могу посмотреть на следующий символ в файле в Python 3?

Предположим, я создаю парсер и хочу заглянуть в поток.

В Python 2 я мог бы написать:

def peek():
    next = inputfile.read(1)
    inputfile.seek(-1,1)
    return next

однако в Python 3 относительный поиск был отключен.

3 ответа

Решение

Вместо этого вы можете использовать inputfile.peek(1)[:1],

Это не работает в текстовом режиме, но работает в двоичном режиме:

>>> open('test', 'rb').peek(1)
b'test\n'
      file.read(1)
file.seek(file.tell()-1)
Другие вопросы по тегам