我试图寻找这个答案,因为它似乎并不太复杂,但我没有成功。我正在尝试使用一些旧的FORTRAN代码,并将其引入Python,以便我可以使用它。在这个过程中,我遇到了一些与文件I/O有关的问题,我试图了解f2py将如何处理这个问题。我正在用gfortran开发Ubuntu11.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,打开新创建的"test“文件,它是空的。我可以打印到屏幕上没有问题,但打印到一个文件似乎不起作用。如有任何指导,将不胜感激。f2py文档没有提到写语句。
发布于 2012-12-03 15:25:12
你可以看到这里,
Python I/O不会从Fortran捕获I/O。
https://stackoverflow.com/questions/10627869
复制相似问题