リモート データベースからプルされた、zip のようなファイル コンテナーにラップされた何千ものバイナリを処理しています。readelf などのツールを使用してこれらのバイナリの内容を分析する必要がありますが、バイナリをディスクに書き込むために不要な IO が発生するのを避けたいと考えています。
subprocess.Popen を呼び出して、コマンドがファイルとして理解するコマンドライン ユーティリティにメモリ内ファイルを渡す方法はありますか? ファイル記述子を標準入力に割り当てようとしましたが、ユーティリティが期待どおりに標準入力からファイルの内容を読み取れません。
with zipfile.ZipFile(file,'r') as z:
with z.open(binary_path) as bin:
subprocess.Popen(['readelf','-d'],stdin=bin)
また、必要な引数をファイル記述子への参照に直接設定しようとしましたが、それも無駄であることが証明されています。
with zipfile.ZipFile(file,'r') as z:
with z.open(binary_path) as bin:
subprocess.Popen(['readelf','-d',bin])
私が試みていることは可能ですか、それともディスクに書き込んでそこから分析することに頼るべきですか?
どうもありがとう!