0

ネイティブの実行可能ファイル/スクリプトを呼び出すいくつかの簡単なユーティリティを作成しようとしています。私はすでに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に行が書き込まれるたびにリスナーを起動して、ファイル行を配列などに同期的に書き込むようにします。どうすればこれを行うことができますか?

4

0 に答える 0