首页 > 解决方案 > 在找到标题之前如何读取 csv 文件?

问题描述

我想要的是跳过前 20 行,因为我需要的数据来自第 21 行及以下。我已经尝试过“skiprows”,但是每个文件的标题之前的行都在变化。所以我希望它对任何文件都灵活。我怎么做?

起初我的想法是增加一个变量以了解需要多少次跳过:

skip = 0
if 'X error' not in pd.read_csv(nF):
    skip += 1

但它显示“错误标记数据。C 错误:第 13 行中应有 1 个字段,看到 10'。

CSV:

    <INFO>
{
InspectionResultFileType:1.01-FULL-ENG
InspectMode:2
Unit:0
ReviseBalance:1
JudgeItem:448
TeachingMethod:4
ReviseMode:0
ReviseScalingX:1.000013
ReviseScalingY:0.999969
}
Insp ON/OFF,T code,Design D,X error -,X error +,Y error -,Y error +,D error -,D error +,DD error
1,T1,0.151,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
1,T2,0.151,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
1,T3,0.152,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
1,T4,0.152,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
1,T5,0.251,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
1,T6,0.251,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
1,T7,2.000,-0.06000,0.06000,-0.06000,0.06000,-0.06000,0.06000,0.06000
NO.,T code,H. NO.,Jud,Design X,Design Y,Design D,Measu. X,Measu. Y,Measu. D,X error,Y error,D error,DD,TimeStamp

标签: pythonpandas

解决方案


skiprows = 0
with open(filename, 'r+') as f:
    for line in f:
        if not line.startswith('NO.'):
            skiprows += 1
        else:
            break

print(skiprows)

在这个问题中找到了这个解决方案。


推荐阅读