Python:我的csv.reader将csv文件作为文本导入

时间:2015-05-06 08:00:33

标签: python csv import

导入CSV文件后,输出显示为[['1', '2', '3']]。如何确保将其导入为数字?

1 个答案:

答案 0 :(得分:3)

使用csv模块reader函数,从csv文件读取的行将作为字符串列表返回。如果您希望不将不带引号的数字作为字符串返回,请使用quoting=csv.QUOTE_NONNUMERIC选项。但是,请注意此选项将转换为float。如果您要将这些数字处理或显示为int s,则必须将其转换为int

这是你的csv文件:

1,2,3
4,5,6
7,8,9

假设您想要一个列表输出:

import csv                                                                                                                                    
tst = open('test.csv')                                                                                                                          
l = []                                                                                                                                          
reader = csv.reader(tst, quoting=csv.QUOTE_NONNUMERIC)                                                                                         
for line in reader:                                                                                                                           
    l.append(line)

print l

收率:

[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]

要输出整数,您也可以直接将字符串转换为整数:

l = []                                                                                                                                          
tst = open('test.csv')                                                                                                                          
reader = csv.reader(tst)                                                                                                                      
for line in reader:                                                                                                                           
    l.append([int(i) for i in line])                                                                                                          

print l 

收率:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]