使用csv.reader()创建列表

时间:2013-05-13 22:16:20

标签: python csv

我正在尝试从csv文件在python中创建一个列表。 CSV文件只包含一列,包含大约300行数据。该列表应该(理想情况下)包含每行中的数据字符串。

当我执行下面的代码时,我最终得到一个列表列表(每个元素都是一个列表,而不是一个字符串)。我正在使用的CSV文件格式不正确,还是我还缺少其他东西?

filelist = []                
with open(r'D:\blah\blahblah.csv', 'r') as expenses:
    reader = csv.reader(expenses)
    for row in reader:
        filelist.append(row)

3 个答案:

答案 0 :(得分:7)

row是一行,包含一个字段。您需要获取该行中的第一项:

filelist.append(row[0])

或者更简洁:

filelist = [row[0] for row in csv.reader(expenses)]

答案 1 :(得分:1)

似乎你的“csv”不包含任何像“;”这样的分隔符要么 ”,”。 因为你说它只包含1列。所以它不是真正的csv,也不应该有分离器。

所以你可以直接读取文件:

filelist = []
for line in open(r'D:\blah\blahblah.csv', 'r').readlines():
    filelist.append(line.strip())

答案 2 :(得分:0)

每行都被读作单元格列表。 所以你想要做的是

output = [ row[0] for row in reader ]

因为你只在每一行填写了第一个单元格。