在Python中读取打开文件的第一个字节

时间:2015-10-22 15:40:36

标签: python

在不弄乱文件位置的情况下,读取打开文件的前几个字节的最佳方法是什么?这太过分了:

current_position = f.tell()

f.seek(0)
b1 = f.read(1)
b2 = f.read(1)

f.seek(current_position, 0)

1 个答案:

答案 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)

为什么不能直接复制文件对象?