Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用CSV文件的第一行创建列表_Python_List_Csv - Fatal编程技术网

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

如何在python中使用CSV文件的第一行创建列表,python,list,csv,Python,List,Csv,我正在尝试使用python从csv文件的第一行(列标题)创建一个列表。我编写了这个小脚本,但它打印了两个不同的列表。打印的第一项是csv的第一行,第二项打印在第二行 我做错了什么 import csv import sys with open('agentsFullOutput.csv') as csvFile: reader = csv.reader(csvFile) print csvFile.next() field_names_list = [] fie

我正在尝试使用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()
时,文件中的下一行将
生成
,直到到达文件末尾

在您的代码示例中,由于您调用了两次
next()
,并且在第二次调用中将其分配给
field\u name\u list
,因此它将分配第二行,而不是第一行

下面将第一行分配给变量
字段\u name\u list

with open('agentsFullOutput.csv') as csvFile:
    reader = csv.reader(csvFile)
    field_names_list = next(reader)

使用
next(reader)
而不是
reader.next()
意味着代码可以移植到Python 3。在3+系列中,迭代器的next()方法已重命名为
\uuuu next\uuuu()
,以保持一致性。

您可以使用Pandas库从庞大的数据集中读取前几行

import pandas as pd
data = pd.read_csv("names.csv", nrows=1)

您可以在nrows参数中提及要读取的行数。

csvFile.next()
将以字符串形式读取该行,并将其分配给
字段名称列表
。也许你指的是
reader.next()
csvFile.next().strip('\n').split(',')
。@haleemulali:实际上是的,我指的是
reader.next()
-谢谢,我已经更新了答案。@simeonviser谢谢!我现在唯一的问题是由每个字符组成的列表。我试过使用
excel
方言,但不起作用
reader=csv.reader(csvFile,dialogue='excel')
。我已经用我的csv文件做了同样的尝试,该文件大约有16个元素用“;”分隔但是Python将其作为列表中的单个字符串来读取。。。。我的意思是列表的长度是1而不是16。但从第二行开始,它被认为是16。我不知道为什么会这样。有什么帮助吗??
        with open(__csvfile) as csvFile:
            reader = csv.DictReader(csvFile)