scipy.io.FortranFile.read_record¶
- FortranFile.read_record(*dtypes, **kwargs)[源代码]¶
从文件中读取给定类型的记录。
- 参数
- *dtypes数据类型,可选
指定数据大小和持久性的数据类型。
- 退货
- datandarray
一维数组对象。
- 加薪
- FortranEOFError
发出没有更多记录可用的信号
- FortranFormattingError
发出信号,表示在记录过程中遇到了文件末尾
注意事项
如果记录包含多维数组,则可以在dtype中指定大小。例如::
INTEGER var(5,4)
可以使用::读取
read_record('(4,5)i4').T
请注意,此函数执行以下操作 not 假设文件数据是Fortran列的主顺序,因此您需要(I)在读取时交换维度顺序,(Ii)转置结果数组。
或者,您可以将数据作为一维数组读取,然后自己处理排序。例如::
read_record('i4').reshape(5, 4, order='F')
对于包含多个变量或混合类型(与单个标量或数组类型相对)的记录,请将它们作为单独的参数提供:
double precision :: a integer :: b write(1) a, b record = f.read_record('<f4', '<i4') a = record[0] # first number b = record[1] # second number
如果任何变量是数组,则可以将形状指定为相关dtype中的第三项::
double precision :: a integer :: b(3,4) write(1) a, b record = f.read_record('<f4', np.dtype(('<i4', (4, 3)))) a = record[0] b = record[1].T
NumPy还支持这种类型的简短语法::
record = f.read_record('<f4', '(3,3)<i4')