如何查看 Python 3 文件中的下一个字符?

How can I peek at the next character in a file in Python 3?

假设我正在构建一个解析器,并且我想在流中向前看。

在Python2中,我可以写:

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

然而,在 Python 3 中,相对查找被禁用。

相反,您可以使用 inputfile.peek(1)[:1]

这在文本模式下不起作用,但在二进制模式下有效:

>>> open('test', 'rb').peek(1)
b'test\n'
file.read(1)
file.seek(file.tell()-1)