python - 在找到标题之前如何读取 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
解决方案
skiprows = 0
with open(filename, 'r+') as f:
for line in f:
if not line.startswith('NO.'):
skiprows += 1
else:
break
print(skiprows)
在这个问题中找到了这个解决方案。