我试过寻找这个答案,因为它看起来不太复杂,但我没有成功。我正在尝试使用一些旧的 FORTRAN 代码并将其带入 Python,以便我可以使用它。在此过程中,我遇到了一些文件 I/O 问题,我试图了解 f2py 如何处理这些问题。我正在使用 gfortran 开发 Ubuntu 11.10。例如,我试图使用以下子例程:
C FILE INOUT.F
SUBROUTINE INOUT
i (NAME, STUFF)
Cf2py Intent(in,out) NAME, STUFF
CHARACTER*6 NAME, STUFF
OPEN(unit=1,file=NAME)
WRITE(1,100) STUFF
100 FORMAT(A8)
RETURN
END
然后我使用 gfortran 和 f2py 进行编译:
f2py -c -m inout inout.f
它创建了 inout.so 共享库。然后在 Python 中,我尝试了一个简单的测试:
python
>>> import inout
>>> inout.inout('test','hello')
('test', 'hello ')
然后退出 Python 并打开新创建的“测试”文件,它是空的。我可以打印到屏幕没问题,但打印到文件似乎不起作用。任何指导将不胜感激。f2py 文档没有提到 WRITE 语句。