2015-05-06 30 views
0

导入CSV文件后,输出显示为[['1', '2', '3']]。我怎样才能确保它作为一个数字导入?Python:我的csv.reader以文本形式导入csv文件

+0

将照亮看到输入数据和** **代码再现这个而不仅仅是你的结果,并没有别的 – EdChum

+0

'INT(your_list [0] [0]) ' – ForceBru

+0

Thx EdChum。测试文件是简单的csv文件,带有整数的3 * 3矩阵。这里是代码:TST =开放( 'test.csv') 升= [] 用于csv.reader线(tst.readlines()[0:]): l.extend(线) 打印(tst.read()) print(l) – user3376020

回答

3

使用csv模块reader函数将从csv文件中读取的行作为字符串列表返回。如果您希望未加引号的数字不会以字符串形式返回,请使用quoting=csv.QUOTE_NONNUMERIC选项。但是,请注意,此选项将转换为浮动。如果你想处理或显示这些数字为int,那么你将不得不将它们投射为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]]