Estoy intentando descubrir cómo redirigir la salida desde algún código FORTRAN para el que he generado una interfaz Python mediante F2PY. He intentado:Redireccionando salida FORTRAN (llamada mediante F2PY) en 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
Este es el método de facto de redirigir la salida en Python, pero no parece funcionar en este caso (es decir, la salida se muestra de todos modos).
Encontré a mailing list post from 2002 diciendo que "es posible leer mensajes de dispositivos pts, por ejemplo ttysnoop hace esto". La información sobre ttysnoop parece ser bastante difícil de encontrar en línea (no creo que se haya actualizado en algunos años, por ejemplo, the first result on Google for "ttysnoop" tiene enlaces muertos a archivos tar, RPM y .deb), y this request for a port to OS X recibió la respuesta " Sin suerte, requiere algunas funciones utmp específicas de Linux que no puedo crear ".
Estoy abierto a cualquier sugerencia sobre cómo redirigir la salida (no tiene que usar ttysnoop).
Gracias!
¿Seguro la salida FORTRAN no va a stderr en lugar de la salida estándar? –
Sí, intenté redirigirlo también, y obtuve el mismo resultado. – srunni