读取基于位置的文本文件的正确方法

maa*_*zza 5 python parsing coda-format

所以我有一个包含这种(标准化)格式数据的文件:

 12455WE READ THIS             TOO796445 125997  554777     
 22455 888AND THIS       TOO796445 125997  55477778 2 1
Run Code Online (Sandbox Code Playgroud)

可能是因为某人做过太多的合作。

每个字段都有固定的长度,我可以通过切片来读取它。

我的问题是如何以一种更加灵活的方式构建我的代码,并且不会让我对切片使用硬编码偏移?我应该使用类似的常量类吗?

编辑:

此外,第一个数字(0->9 始终存在)决定了固定长度的行的结构。此外,该文件是由确保有效性的第三方提供的,因此我不需要检查格式,只需读取它。大约有 11 种不同的线路结构。

usr*_*301 1

创建一个宽度列表和一个接受该宽度列表和索引列号作为参数的例程。该例程可以通过添加所有先前的列宽度来计算切片的起始偏移量,并添加索引列的宽度作为结束偏移量。