繁体   English   中英

如何在python中使用CSV文件的第一行创建列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM