在不弄乱文件位置的情况下,读取打开文件的前几个字节的最佳方法是什么?这太过分了:
current_position = f.tell()
f.seek(0)
b1 = f.read(1)
b2 = f.read(1)
f.seek(current_position, 0)
答案 0 :(得分:2)
您可以使用os.pread(fd, buffersize, offset)
,但这只是在Python 3.3中添加的。像这样:
os.pread(f.fileno(), 2, 0)
读取文件开头的2个字节。
另一种选择是复制fd
,然后寻找副本,然后关闭副本:
d = os.dup(f.fileno())
os.lseek(d, 0, 0)
b1 = os.read(d, 1)
b2 = os.read(d, 1)
os.close(d)
为什么不能直接复制文件对象?