我正在使用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()的工作原理有什么误解?