4
说,我有一个原始的数字文件描述符,我需要根据它获取文件中的当前位置。在Python中获取文件描述符的位置
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()
只返回文件中的第一个位置,它在循环中没有更新。
有没有办法根据文件描述符获取文件当前的实时位置?
我觉得你对你的评论有点迷茫;)(应该是'''#''') – wnnmaw 2014-09-03 13:45:57
@wnnmaw呀,该死的Ç':D' – VisioN 2014-09-03 13:48:02
又何尝如果你正在阅读的文件不是这个过程中第一个打开的文件,它就像'p.get_open_files()[1]'等。 – bereal 2014-09-03 14:21:57