使用 numpy.loadtxt 导入数据:没有分隔符但固定列宽

oli*_*oli 5 python numpy

我正在尝试使用 python/numpy.loadtxt 导入数据。对于大多数数据,这不是问题,例如,如果一行看起来像这样:

0.000000      0.000000      0.000000      0.000000    -0.1725804E-13
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我可以使用空格作为分隔符。不幸的是,生成数据的程序不使用分隔符,只是一个固定的列宽(我不能改变它)。例子:

-0.1240503E-03-0.6231297E-04  0.000000      0.000000    -0.1126164E-02
Run Code Online (Sandbox Code Playgroud)

我可以用简单的方式告诉 numpy.loadtxt 每列是 14 个字符吗?我宁愿不必修改其他程序手动生成的文件...

编辑:

我想我根据 dxwx 的建议分享了我非常简单的解决方案。对于我提供的示例,解决方案是

a = numpy.genfromtxt('/path/to/file.txt', delimiter = 14)
Run Code Online (Sandbox Code Playgroud)

在我的真实数据中第一列之前有一个额外的空格,我不想使用最后一列和最后一行。所以现在看起来像这样:

a = numpy.genfromtxt('/path/to/file.txt',
                     delimiter = (1,14,14,14,14,14,14), 
                     usecols = range(1,6), skip_footer = 1)
Run Code Online (Sandbox Code Playgroud)

感谢大家的快速响应。

dwx*_*wxw 5

看一下 Numpy 的genfromtxt - 它说它可以使用整数宽度作为分隔符。