Python:如何在不使用列分隔符的情况下将格式化的文件读取到NumPy数组中?

时间:2019-01-27 18:10:33

标签: python numpy formatting

我有一个旧的VSOP87文件,用于计算木星的位置。该文件为ascii格式,其列大小随每列而变化,但在各行之间保持不变。例如(从3500行中选择):

4510   17  0  0  0  0  1 -3  0  0  0  0  0  0 -0.00003166372     0.00003746628     0.00004905419 1.32084631684     110.20632121940 
4510   18  0  0  0  0  4-10  0  0  0  0  0  0  0.00005031135     0.00001683362     0.00005305283 1.30671236848      14.22709400160 

这些行的格式为:

i2,3i1,i5,12i3, f15.11,2f18.11,f14.11,f20.11

,即2位数的整数(此处为“ 4”),后跟1位数的3个整数(5,1,0),依此类推。我想在Python中读取文件并将数据存储为NumPy数组。 (第一个)问题在这里的示例中出现,因为没有列分隔符,并且诸如genfromtxt()之类的函数将“ 4-10”视为单个字段,而格式指示它们是i3的两个字段。如何传递文件/行的格式,例如是Fortran样式(如上所述)还是C样式(例如“%2i%1i%1i%1i%5i ...”之类)?

0 个答案:

没有答案