F2PY を使用して Python インターフェイスを生成した FORTRAN コードからの出力をリダイレクトする方法を見つけようとしています。私はもう試した:
from fortran_code import fortran_function
stdout_holder = sys.stdout
stderr_holder = sys.stderr
sys.stdout = file("/dev/null","w")
fortran_function()
sys.stdout.close()
sys.stderr.close()
sys.stdout = stdout_holder
sys.stderr = stderr_holder
これは、Python で出力をリダイレクトするデファクトの方法ですが、この場合はうまくいかないようです (つまり、とにかく出力が表示されます)。
2002 年のメーリング リストの投稿で、「pts デバイスからメッセージを読み取ることができます。たとえば、ttysnoop がこれを行います」という内容を見つけました。ttysnoop に関する情報をオンラインで見つけるのはかなり難しいようです (ここ数年更新されていないと思います。たとえば、「ttysnoop」に関する Google での最初の結果には、tarball、RPM、および .deb へのデッド リンクしかありません。 )、そしてOS X への移植を求めるこの要求に対して、「うまくいきません。作成できない Linux 固有の utmp 関数が必要です。」という応答を受け取りました。
出力をリダイレクトする方法についての提案をお待ちしています (ttysnoop を使用する必要はありません)。
ありがとう!