में आउटपुट को रीडायरेक्टिंग (F2PY के माध्यम से कहा जाता है) मैं कुछ फ़ोरट्रान कोड से आउटपुट को रीडायरेक्ट करने का तरीका जानने के लिए प्रयास कर रहा हूं जिसके लिए मैंने F2PY का उपयोग कर पाइथन इंटरफ़ेस उत्पन्न किया है। मैं कोशिश की है:पायथन
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
यह अजगर में उत्पादन पुन: निर्देशित होने वास्तविक तरीका है, लेकिन यह इस मामले (जैसे कि, उत्पादन वैसे भी प्रदर्शित किया जाता है) में काम करने के लिए प्रतीत नहीं होता।
मुझे a mailing list post from 2002 मिला और कहा कि "पीटीएस उपकरणों से संदेशों को पढ़ना संभव है, उदाहरण के लिए ttysnoop यह करता है"। Ttysnoop पर जानकारी ऑनलाइन ढूंढना बहुत मुश्किल लगता है (मुझे नहीं लगता कि इसे कुछ सालों में अपडेट किया गया है; उदाहरण के लिए, the first result on Google for "ttysnoop" में टैरबॉल, आरपीएम और .deb के लिए केवल मृत लिंक हैं), और this request for a port to OS X को प्रतिक्रिया मिली " कोई भाग्य नहीं है, इसके लिए कुछ लिनक्स विशिष्ट utmp फ़ंक्शंस की आवश्यकता है जिन्हें मैं नहीं बना सकता। "
मैं आउटपुट को रीडायरेक्ट करने के तरीके के बारे में किसी भी सुझाव के लिए खुला हूं (इसे ttysnoop का उपयोग नहीं करना है)।
धन्यवाद!
क्या आप वाकई fortran उत्पादन stdout के बजाय stderr करने के लिए नहीं जा रहा है कर रहे हैं? –
हाँ, मैंने अभी भी इसे पुनर्निर्देशित करने का प्रयास किया है, और एक ही परिणाम मिला है। – srunni