【发布时间】:2014-09-24 02:37:43
【问题描述】:
我使用的是 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() 的工作原理?
【问题讨论】: