簡體   English   中英

打印.csv文件作為python中的列表

[英]Printing .csv file as list in python

我的代碼:

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']

我做錯了什么?

您收到[["hello", "bye"]]的原因是,如果CSV有多行,它們將成為第一個列表中的項目。

您可以通過訪問your_list的第一項來獲得所需的your_list如下所示:

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

您的代碼沒有問題。 只是您要在csv的所有行中列出一個列表。 這就是為什么要獲取列表列表的原因。 要將每一行作為列表,您可以簡單地遍歷閱讀器,然后將獲得每一行的列表。 當您有大文件時,此技術特別有用。

import csv

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

您可以[print(r) for r in your_list]看到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]

如果您想弄平整個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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM