说,我有一个原始数字文件描述符,我需要根据它获取文件中的当前位置。
import os, psutil
# some code that works with file
lp = lib.open('/path/to/file')
p = psutil.Process(os.getpid())
fd = p.get_open_files()[0].fd # int
while True:
buf = lp.read()
if buf is None:
break
device.write(buf)
print tell(fd) # how to find where we are now in the file?
在下面的代码中,lib
是一个编译库,它不提供对文件对象的访问。在循环中,我使用嵌入式方法read
,它返回处理过的数据。数据及其长度与文件位置无关,因此我无法以数学方式计算偏移量。
我尝试将fdopen
用作fd = fdopen(p.get_open_files()[0].fd)
,但print fd.tell()
仅返回文件中的第一个位置,该位置未在循环中更新。
有没有办法根据文件描述符获取文件中的当前实时位置?
答案 0 :(得分:1)