Python-使用csv.reader跳过标题行

use*_*273 3 python

我在大型(7000行)csv文件上尝试了此建议的解决方案): 从第2行读取文件或跳过标题行`

以下代码有效,但前提是我必须手动删除标头:

RatedTracksFile = open('pyall_rated.csv')
RatedTracksReader = csv.reader(RatedTracksFile)
data_list = list(csv.reader(RatedTracksFile))
eligible1 = open('py_all1.csv', 'a') # open py_all1.csv in append mode
for i in range(len(data_list)):
    trackrating = int(data_list[i][12])
    ...
Run Code Online (Sandbox Code Playgroud)

我尝试了添加此建议代码的不同方法:

with open(fname) as f:
    next(f)
    for line in f:
Run Code Online (Sandbox Code Playgroud)

我是python的新手,无法弄清楚如何添加它。我一直遇到相同的值类型错误,因为它仍然读取第1行,col 12(这是标题的字符串),而不是第2行的整数。第12栏:

ValueError: invalid literal for int() with base 10: 'GroupDesc'
Run Code Online (Sandbox Code Playgroud)

已解决:基于下面的Sphinx的评论(谢谢!)。

小智 9

import csv
with open("1800.csv", "rb") as files:
   reader = csv.reader(files)
   next(reader, None)
   for data in reader:
      print data
Run Code Online (Sandbox Code Playgroud)

这对我有用,请尝试一下。


jam*_*lak 6

如果标题包含列名,则最好的解决方案是使用 csv.DictReader

>>> import csv
>>> with open('names.csv') as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...         print(row['first_name'], row['last_name'])
...
Baked Beans
Lovely Spam
Wonderful Spam
Run Code Online (Sandbox Code Playgroud)