我正在使用 Python 3,缓冲文件 I/O 的 peek() 方法似乎不像记录的那样工作。例如,下面的代码说明了这个问题——它打印8192作为返回的字节字符串的长度f.peek(1)
:
jpg_file = 'DRM_1851.JPG'
with open(jpg_file, 'rb') as f:
next_byte = f.peek(1)
print(len(next_byte))
我有时想在不移动文件指针的情况下查看下一个字节,但由于上述方法不起作用,我在这些地方做一些事情:
next_byte = f.read(1) # read a byte
f.seek(-1,1) # move the file pointer back one byte
这行得通,但感觉就像一个杂物。我是否误解了 peek() 的工作原理?