[英]How to create list using first row of CSV file in python
我正在尝试使用python在csv文件的第一行-列标题中创建一个列表。 我整理了这个小脚本,但它打印了两个不同的列表。 打印的第一项是csv的第一行,第二项打印在第二行。
我究竟做错了什么?
import csv
import sys
with open('agentsFullOutput.csv') as csvFile:
reader = csv.reader(csvFile)
print csvFile.next()
field_names_list = []
field_names_list = csvFile.next()
print field_names_list
每次调用.next()
它将移至文件的下一行。 因此,您只会在第一个.next()
调用中获得CSV文件的标题:
import csv
with open('agentsFullOutput.csv') as csvFile:
reader = csv.reader(csvFile)
field_names_list = reader.next()
任何后续的.next()
调用都将读取文件中的下一行,因此将是一行数据。
每次调用next()
,都会yielded
文件的下一行,直到到达文件末尾。
在您的代码示例中,由于您两次调用next()
,并且在第二次调用中将其分配给field_name_list
,所以它将分配第二行,而不是第一行。
下面将第一行分配给变量field_names_list
。
with open('agentsFullOutput.csv') as csvFile:
reader = csv.reader(csvFile)
field_names_list = next(reader)
使用next(reader)
而不是reader.next()
意味着代码可移植到reader.next()
。在3+系列中,为了保持一致性,迭代器的next()方法已重命名为__next__()
。
您可以使用Pandas库从庞大的数据集中读取前几行。
import pandas as pd
data = pd.read_csv("names.csv", nrows=1)
您可以在nrows参数中提及要读取的行数。
with open(__csvfile) as csvFile:
reader = csv.DictReader(csvFile)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.