Tôi đang cố gắng tìm ra cách chuyển hướng đầu ra từ một số mã FORTRAN mà tôi đã tạo ra một giao diện Python bằng cách sử dụng F2PY. Tôi đã thử:Chuyển hướng FORTRAN (được gọi qua F2PY) đầu ra bằng 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
Đây là phương pháp thực tế chuyển hướng đầu ra bằng Python, nhưng nó dường như không làm việc trong trường hợp này (ví dụ, đầu ra sẽ được hiển thị anyway).
Tôi đã tìm thấy a mailing list post from 2002 nói rằng "Có thể đọc tin nhắn từ các thiết bị pts, ví dụ: ttysnoop thực hiện việc này". Thông tin về ttysnoop có vẻ khá khó tìm thấy trực tuyến (tôi không nghĩ rằng nó được cập nhật trong vài năm tới, ví dụ: the first result on Google for "ttysnoop" chỉ có liên kết chết đến tarball, RPM và .deb) và this request for a port to OS X đã nhận được phản hồi " Không may mắn, nó đòi hỏi một số chức năng utmp linux cụ thể mà tôi không thể tạo ra. "
Tôi đang mở cho bất kỳ đề xuất nào về cách chuyển hướng đầu ra (nó không phải sử dụng ttysnoop).
Cảm ơn!
Bạn có chắc chắn sản lượng fortran sẽ không thiết bị lỗi chuẩn thay vì stdout? –
Vâng, tôi cũng đã thử chuyển hướng nó, và có kết quả tương tự. – srunni