#python-2.7 #python-3.x #seek #peek
#python-2.7 #python-3.x #искать #заглянуть
Вопрос:
Предположим, я создаю синтаксический анализатор и хочу просмотреть поток.
В Python 2 я мог бы написать:
def peek():
next = inputfile.read(1)
inputfile.seek(-1,1)
return next
однако в Python 3 относительный поиск был отключен.
Ответ №1:
Это не работает в текстовом режиме, но работает в двоичном режиме:
>>> open('test', 'rb').peek(1)
b'testn'
Ответ №2:
Вместо этого вы можете использовать inputfile.peek(1)[:1]
.
Комментарии:
1. У меня это не работает с ошибкой «AttributeError: объект ‘_io.TextIOWrapper’ не имеет атрибута ‘peek'»
Ответ №3:
file.read(1)
file.seek(file.tell()-1)