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

Posted

技术标签:

【中文标题】如何在 Python 3 中查看文件中的下一个字符?【英文标题】:How can I peek at the next character in a file in Python 3? 【发布时间】:2017-02-24 11:12:44 【问题描述】:

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

在 Python 2 中,我可以这样写:

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

然而,在 Python 3 中,相对搜索被禁用。

【问题讨论】:

【参考方案1】:

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

>>> open('test', 'rb').peek(1)
b'test\n'

【讨论】:

【参考方案2】:

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

【讨论】:

这对我不起作用,出现错误“AttributeError: '_io.TextIOWrapper' object has no attribute 'peek'”【参考方案3】:
file.read(1)
file.seek(file.tell()-1)

【讨论】:

以上是关于如何在 Python 3 中查看文件中的下一个字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中访问文件(.txt)中的下一行

python中如何从字符串内提取指定的字符

Python 3:检查迭代器的下一个值而不进行迭代

linux sed在某些字符串的下一行插入内容?sed在下一行插入?

如何使用 ++ 运算符访问字符串字符数组中的下一个字符串?

我如何使用scanf读取文本文件中的下一行