Sto cercando di capire come reindirizzare l'output da un codice FORTRAN per il quale ho generato un'interfaccia Python utilizzando F2PY. Ho provato:Reindirizzamento dell'output FORTRAN (chiamato tramite F2PY) in 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
questo è il metodo de facto di reindirizzare l'output in Python, ma non sembra funzionare in questo caso (vale a dire, l'output viene visualizzato in ogni caso).
Ho trovato a mailing list post from 2002 dicendo che "È possibile leggere messaggi da dispositivi pts, ad esempio ttysnoop fa questo". Le informazioni su ttysnoop sembrano essere piuttosto difficili da trovare online (non credo sia stato aggiornato in parecchi anni, ad esempio, the first result on Google for "ttysnoop" ha solo dead link a tarball, RPM e .deb), e this request for a port to OS X ha ricevuto la risposta " Nessuna fortuna, richiede alcune funzioni di utmp specifiche di Linux che non riesco a creare. "
Sono aperto a qualsiasi suggerimento su come reindirizzare l'output (non è necessario utilizzare ttysnoop).
Grazie!
Sei sicuro l'uscita FORTRAN non sta per stderr invece di stdout? –
Sì, ho appena provato a reindirizzarlo e ho ottenuto lo stesso risultato. – srunni