Python 在.csv文件中多次使用next()

Python 在.csv文件中多次使用next(),python,csv,Python,Csv,我正在寻找一种方法来多次调用next(),直到找到.csv文件中的特定行为止(基本上跳过所有内容,直到找到我想要的行为止),例如 .csv文件的内容如下所示 LAT;;;;;47.0458;47.0458;47.0458;47.0458;47.0458;47.0458;47.0458 LON;;;;;21.9183;21.9183;21.9183;21.9183;21.9183;21.9183;21.9183 ASL;;;;;126.000;126.000;126.000;126.000;126

我正在寻找一种方法来多次调用next(),直到找到.csv文件中的特定行为止(基本上跳过所有内容,直到找到我想要的行为止),例如

.csv文件的内容如下所示

LAT;;;;;47.0458;47.0458;47.0458;47.0458;47.0458;47.0458;47.0458 LON;;;;;21.9183;21.9183;21.9183;21.9183;21.9183;21.9183;21.9183 ASL;;;;;126.000;126.000;126.000;126.000;126.000;126.000;126.000 CITY;;;;;Oradea;Oradea;Oradea;Oradea;Oradea;Oradea;Oradea DOMAIN;;;;;NEMS4;NEMS4;NEMS4;NEMS4;NEMS4;NEMS4;NEMS4 LEVEL;;;;;2 m above gnd;10 m above gnd;10 m above gnd;2 m above gnd;2 m above gnd;10 m above gnd;10 m above gnd NAME;;;;;Temperature;Wind Speed;Wind Direction;Temperature;Temperature;Wind Speed;Wind Speed UNIT;;;;;°C;km/h;°;°C;°C;km/h;km/h AGGREGATION;;;;;daily mean;daily mean;daily mean;daily max;daily min;daily max;daily min UTC_OFFSET;;;;;2;2;2;2;2;2;2 Year;Month;Day;Hour;Minute;Temperature daily mean [2 m above gnd];Wind Speed daily mean [10 m above gnd];Wind Direction daily mean [10 m above gnd];Temperature daily max [2 m above gnd];Temperature daily min [2 m above gnd];Wind Speed daily max [10 m above gnd];Wind Speed daily min [10 m above gnd] 2019;12;14;00;00;6.74;13.75;170.60;11.32;3.43;21.14;2.60 2019;12;15;00;00;5.60;18.08;186.24;10.92;1.31;26.05;11.17 (六);;;;;;47.0458;47.0458;47.0458;47.0458;47.0458;47.0458;47.0458 龙;;;;;21.9183;21.9183;21.9183;21.9183;21.9183;21.9183;21.9183 ASL;;;;;126.000;126.000;126.000;126.000;126.000;126.000;126 城市Oradea;Oradea;Oradea;Oradea;Oradea;Oradea;奥拉达 领域;;;;;NEMS4;NEMS4;NEMS4;NEMS4;NEMS4;NEMS4;NEMS4 级别;;;;;地面以上2米;地面以上10米;地面以上10米;地面以上2米;地面以上2米;地面以上10米;地面以上10米 名称温度;风速;风向;温度;温度;风速;风速 单位; ;;;;;;摄氏度;公里/小时;°;摄氏度;摄氏度;公里/小时;公里/小时 聚合;;;;;日平均值;日平均值;日平均值;每日最大值;每日分钟;每日最大值;每日分钟 UTC偏移量;;;;;2.2.2.2.2.2.2. 年份;月份;白天小时;分钟;日平均气温[地面以上2米];日平均风速【地面以上10m】;风向日平均值【地面以上10m】;每日最高温度[地面以上2米];每日最低温度[gnd上方2m];每日最大风速【地面以上10m】;每日最低风速【地面以上10m】 2019;12;14;00;00;6.74;13.75;170.60;11.32;3.43;21.14;2.60 2019;12;15;00;00;5.60;18.08;186.24;10.92;1.31;26.05;11.17 基本上我想要我的:

Headers=以.csv格式显示的高亮文本,并从此处继续

我知道我可以很容易地编辑.csv文件,但我想知道怎么做

我试过的东西

heading=next(f)*12#12是我需要的数据所在,它只是将第一行乘以12倍

还尝试:

heading=next(f,12)#这只是第一排比赛

多谢各位

注意:Pastebin加载时出现问题,因此我无法将.csv粘贴到那里。

尝试:

[next(f) for i in range(12)]
headings = next(f)


您可以使用
readlines()

打开(文件)作为f:
line=f.readlines()
第[12]行
当满足给定条件时,将跳过iterable中的元素。将其与内置函数相结合,仅在到达特定行时才允许处理行

在此代码中,删除行的条件是
enumerate
返回的行号小于11(
enumerate
默认使用基于零的计数)

导入csv,itertools >>>将open('weatherfileexample.csv',换行符='')作为f: ... reader=csv.reader(f,分隔符=';') ... # dropwhile返回枚举中的索引,我们可以忽略它,然后 ... # 来自csv.reader的行。 ... 对于i,itertools.dropwhile中的行(lambda x:x[0]<11,枚举(读取器)): ... 打印(行) ... [‘年’、‘月’、‘日’、‘小时’、‘分钟’、‘气温日平均值[地面以上2m]、‘风速日平均值[地面以上10m]、‘风向日平均值[地面以上10m]、‘气温日最高值[地面以上2m]、‘气温日最低值[地面以上2m]、‘风速日最高值[地面以上10m]、‘风速日最低值[地面以上10m]。] ['2019', '12', '14', '00', '00', '6.74', '13.75', '170.60', '11.32', '3.43', '21.14', '2.60'] ['2019', '12', '15', '00', '00', '5.60', '18.08', '186.24', '10.92', '1.31', '26.05', '11.17']
使用
dropwhile
对于一般情况来说是过度的,但是如果情况复杂和/或性能问题严重,则可能非常有用。

这有一个缺陷,即不必要地将整个文件读取到内存中。一次读取一行甚至可以扩展到大量文件,并允许您在到达所需行时立即停止并退出,这在视觉上也更有效。第二个选项将整个文件读取到内存中,并访问错误的变量。我猜你指的是
数据[12]
[next(f) for i in range(12)]
headings = next(f)
data = list(f)
headings = data[12]
'2019;12;14;00;00;6.74;13.75;170.60;11.32;3.43;21.14;2.60\n'
>>> import csv, itertools
>>> with open('weatherfileexample.csv', newline='') as f:
...     reader = csv.reader(f, delimiter=';')
...     # dropwhile returns the index from enumerate, which we can ignore, and
...     # the row from csv.reader.
...     for _, row in itertools.dropwhile(lambda x :x[0] < 11, enumerate(reader)):
...         print(row)
... 
['Year', 'Month', 'Day', 'Hour', 'Minute', 'Temperature daily mean [2 m above gnd]', 'Wind Speed daily mean [10 m above gnd]', 'Wind Direction daily mean [10 m above gnd]', 'Temperature daily max [2 m above gnd]', 'Temperature daily min [2 m above gnd]', 'Wind Speed daily max [10 m above gnd]', 'Wind Speed daily min [10 m above gnd]']
['2019', '12', '14', '00', '00', '6.74', '13.75', '170.60', '11.32', '3.43', '21.14', '2.60']
['2019', '12', '15', '00', '00', '5.60', '18.08', '186.24', '10.92', '1.31', '26.05', '11.17']