ネイティブの実行可能ファイル/スクリプトを呼び出すいくつかの簡単なユーティリティを作成しようとしています。私はすでにsubprocess.Popen
プロセスを開くための使用にかなり精通していますが、PythonでサブプロセスのSTDOUTとSTDERRに同期的にアクセスする方法を理解していません。のようなオブジェクトを渡すことができ、正常に機能することは理解してfile
いますが、どのように正確に行うのですか?実際のファイルシステムファイルに書き込みたくないのですが、どうすればよいですか?mmap.mmap()
メモリファイルAPIが必要ですか?
私はこのようなことをしたいです:
class CoolReader():
def __init__(self, target):
self.target = target
def write(self, output):
self.target.append({timestamp: time.time(), value: output})
stdoutLines = []
stderrLines = []
stdoutReader = CoolReader(stdoutLines)
stderrReader = CoolReader(stderrLines)
subprocess.Popen("ls", stdout=stdoutReader, stderr=stderrReader)
これを行うためのより良い方法はありますか?基本的に、STDOUTまたはSTDERRに行が書き込まれるたびにリスナーを起動して、ファイル行を配列などに同期的に書き込むようにします。どうすればこれを行うことができますか?