在.pcthon中将.csv文件打印为列表

时间:2016-03-12 21:03:37

标签: python python-3.x

我的代码:

import csv

with open('serialnumber.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    your_list = list(reader)

print(your_list)

.csv文件:

hello,bye

印刷输出:

[['hello', 'bye']]

我需要得到这样的列表:

['hello', 'bye']

我做错了什么?

4 个答案:

答案 0 :(得分:2)

您获得[["hello", "bye"]]的原因是,如果CSV有多行,则它们将成为第一个列表中的项目。

您可以通过访问your_list的第一项来获得您想要的内容:

>>> print(your_list[0])
["hello", "bye"]

答案 1 :(得分:2)

您的代码没有问题。只是你正在从csv的所有行中列出一个列表。这就是你得到一份清单清单的原因。要将每一行作为列表,您可以简单地遍历阅读器,您将获得每行的列表。当您有一个大文件时,此技术特别有用。

import csv

with open('serialnumber.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    for r in reader:
      print r

答案 2 :(得分:0)

您可以看到CSV文件的二维数组 [print(r) for r in your_list]

    import csv

with open('serialnumber.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    your_list = list(reader)

#print(your_list)
[print(r) for r in your_list]

答案 3 :(得分:0)

如果你想展平整个 csv阅读器,我会使用list comprehenstion

import csv

with open('serialnumber.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    _list = [word for _iter in reader for word in _iter]
print(_list)

您也可以使用sum

_list = sum(reader, [])

示例一行 csv

hello,bye

输出:

['hello', 'bye']

示例多行 csv

hello,bye,bye
bye,bye,hello
bye,hello,bye

输出:

['hello', 'bye', 'bye', 'bye', 'bye', 'hello', 'bye', 'hello', 'bye']

如果您的csv文件只有一行,则可以使用普通print

import csv

with open('serialnumber.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    print(*reader)