我希望使用Python来解析文件中的数据帧(对于那些可能使用过它的SWMM模型input/inp文件的人)。文件头以一种非常独特的方式打印,这使得完全解析它变得非常困难。我试图从文件中读取的数据帧的示例是:
;; Param
;;Node Parameter Time Series Type
;;-------------- ---------------- ---------------- --------
80408 FLOW 80408 FLOW
81009 FLOW 81009 FLOW
82309 FLOW 82309 FLOW
标题没有用制表符或任何固定数量的空格分隔。另外,对于某些页眉,当它们的长度太大时,它们会占用两条垂直线,而其他标头只使用一条直线。宽度也不是固定的,有不止一个这样的数据帧,它们的宽度都不同。在
我所能做的就是抓住最下面的那条线作为头球。在
^{pr2}$
由于您的数据不适合
read_fwf
中的插值,所以您可以自己扫描和解析头。一旦计算出列名和列宽,就可以将列名和列宽传递给read_fwf
,文件指针在第一行打开。页眉和数据之间的虚线分隔符是列宽的一个很好的指示器,所以我用它来计算列宽。在与@tdelaney的代码相同的思想使其更加简洁:
相关问题 更多 >
编程相关推荐