Python:用numpy读取复杂的文本文件

ccb*_*ney 5 python numpy

我正在使用带有numpy的python来读取具有相当复杂格式的文本文件中的数值模型中的数据.

Numpy的genfromtxt和fromfile函数运行良好,但只有数据是结构化的.我的数据文件看起来像这样:

------ SNIP

[sitename] [dimemsion 1 size] [dimension 2 size]
[data for dim 1]
[data for dim 2]
[date/time]
[header data]
[data (dim1 * dim2)]
[header]
[data]
...
.  
.   
[data/time]
[header]
[data]
.
.
etc...
Run Code Online (Sandbox Code Playgroud)

----剪断

所以,我有一个文本和数字的混合和一个复杂(但重复)的布局.如何在使用numpy时阅读本文的最佳方法是什么?

干杯,

克里斯

tom*_*m10 6

Numpy不擅长广义解析,所以你最好超越它,你选择的内容主要取决于文件的一致性.

如果它们异常超一致,那么你可以从已知位置和已知行中提取数字,而不是只能逐行读取文件作为sting并将其索引到你想要的字符.(逐步执行文件,例如,使用file.readlines将每一行作为字符串.)

通常的情况(至少我发现)是它比上面的变化更多,但是可以使用简单的字符串操作来解析行,例如string.split(这几乎总是我的第一步)等.

除此之外,Python中有许多解析库.我偏爱pyparsing(但我不了解其他人,所以这不是一个公平的比较).以下是各种解析库的摘要.