我试图弄清楚如何重定向一些 FORTRAN 代码的输出,我已经使用 F2PY 为其生成了 Python 接口。我试过了:
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 上的信息似乎很难在网上找到(我认为它已经有好几年没有更新了;例如,Google 上关于“ttysnoop”的第一个结果只有指向 tarball、RPM 和 .deb 的死链接),并且此 OS X 端口请求收到了响应“不走运,它需要一些我无法创建的特定于 linux 的 utmp 函数。”
我愿意接受有关如何重定向输出的任何建议(它不必使用 ttysnoop)。
谢谢!