たとえば、生の数値ファイル記述子があり、それに基づいてファイル内の現在の位置を取得する必要があるとします。
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
をas として使用しようとしましたが、ループ内で更新されていないファイルの最初の位置のみfd = fdopen(p.get_open_files()[0].fd)
が返されました。print fd.tell()
ファイル記述子に基づいて、ファイル内の現在のリアルタイム位置を取得する方法はありますか?