如何将CSV文件转换为行列表?

时间:2015-06-02 20:05:01

标签: python macos csv

我目前将CSV文件保存为Windows逗号分隔值

f = open('file.csv')

csv_f = csv.reader(f)

for row in lines:
    print row

返回

Company,City,State

Ciena Corporation,Linthicum,Maryland

Inspirage LLC,Gilbert,Arizona

Facebook,menlo park,CA

我正在尝试按列

创建列表列
f = open('file.csv')
csv_f = csv.reader(f)
for row in f:
    print row[2]
f.close()

我只收到第3个字母:mesc

在Mac上用Python编写

3 个答案:

答案 0 :(得分:1)

作为处理csv文件的正确方法,您可以使用csv模块:

>>> import csv
>>> with open('f_name.csv', 'rb') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=',')
...     for row in spamreader:
...         print baseUrl + ' '.join(row)

这会将您的行作为列表。如果你想要列表中的所有这些,请执行:

>>> import csv
>>> with open('f_name.csv', 'rb') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=',')
...     print list(spamreader)

请注意,spamreader是一个迭代器,您可以通过list()函数将其转换为列表。

您还可以通过将spamreader传递给zip函数来获取列列表:

>>> import csv
>>> with open('f_name.csv', 'rb') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=',')
...     print zip(*spamreader)

答案 1 :(得分:0)

此功能读取CSV并将其作为列表返回

def csv2list(csvFile):
    outList = list()
    reader = csv.reader(open(csvFile))
    for row in reader:
        outList.append(row)            
    return outList

用法示例:

csv_file = "somthing.csv"
print csv2list(csv_file)

答案 2 :(得分:0)

您需要for row in csv_f: …,而不是for row in f: …