Pythonascii.read制表符(?)分隔符

2024-06-17 04:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用ascii.read扫描大量表格数据文件。列标题似乎没有自一致的分隔符。每个列标题之间有2到7个空格。文件如下所示:

  K    WAVELN    NEFF       GEOM ALB   BOND/QFIT  BOND/GEOM  Q-FITTED
   1  0.3000000    0.0556723    0.0000000    0.0000000    2.1435934    2.0582306
[...]
[...]

我第一次怀疑我可以治疗他们的标签,但事实并非如此:

^{pr2}$

将读取文件,但只返回一个非常无用的数据列。在

现在,在正常情况下,这不会是一个问题-一个简单的

delimter='\s'

本来可以搞定的。然而,对于我的沮丧,一个栏目被命名为“GeO-Alb”-中间有一个空间。这会弄乱分隔符,因为它认为这是两个列标题,而不是一个:

raw = (ascii.read('filename',delimiter='\s')
InconsistentTableError: Number of header columns (8) inconsistent with data columns (7) at data line 0

这可以通过在相关文件中将“GEOM ALB”头替换为“GEOM_ALB”来解决,但是我更希望避免花费时间编写脚本来执行此操作,特别是如果有更简单和优雅的解决方案。在


Tags: columns文件标题readdata数据文件ascii表格
1条回答
网友
1楼 · 发布于 2024-06-17 04:28:11

我在这里找到了解决问题的方法。通过打电话ascii.read作为

raw = (ascii.read('filename',guess=False,header_start=None,data_start=2,names=('K','WAVELN','NEFF','GEOM ALB','BOND/QFIT','BOND/GEOM','Q-FITTED')))

我可以绕过ascii.read的尝试查找和应用标头名称并自行定义它们。关键当然是

^{pr2}$

这说明ascii.read没有标题。在

相关问题 更多 >