各位好,请问python读取csv文件时只能读取一次是为什么
现在有一个csv文件 大概是这个样子
现在对ID和length进行读取
import csv
with open('ccc.csv','r')as file:
reader = csv.reader(file)
ids = [low[0] for low in reader]
value = [low[1] for low in reader]
print ('ids',ids)
print ('value',value)
结果第value列表为空
ids ['ID', 'ID=cds0', 'ID=cds1', 'ID=cds2', 'ID=cds3', 'ID=cds4', 'ID=cds5', 'ID=cds6', 'ID=cds7', 'ID=cds8', 'ID=cds9', 'ID=cds10', 'ID=cds11', 'ID=cds12', 'ID=cds13', 'ID=cds14', 'ID=cds15', 'ID=cds16', 'ID=cds17', 'ID=cds18', 'ID=cds19', 'ID=cds20', 'ID=cds21', 'ID=cds22', 'ID=cds23', 'ID=cds24', 'ID=cds25', 'ID=cds26', 'ID=cds27', 'ID=cds28', 'ID=cds29', 'ID=cds30']
value []
只能写 读取所有行数形成列表才能够赋给value的值
import csv
id_list = []
value_list = []
with open('ccc.csv','r')as file:
reader = csv.reader(file)
lows = [low for low in reader]
ids = [low[0] for low in lows]
value = [low[1] for low in lows]
print ('ids',ids)
print ('value',value)
才可以正常打印
ids ['ID', 'ID=cds0', 'ID=cds1', 'ID=cds2', 'ID=cds3', 'ID=cds4', 'ID=cds5', 'ID=cds6', 'ID=cds7', 'ID=cds8', 'ID=cds9', 'ID=cds10', 'ID=cds11', 'ID=cds12', 'ID=cds13', 'ID=cds14', 'ID=cds15', 'ID=cds16', 'ID=cds17', 'ID=cds18', 'ID=cds19', 'ID=cds20', 'ID=cds21', 'ID=cds22', 'ID=cds23', 'ID=cds24', 'ID=cds25', 'ID=cds26', 'ID=cds27', 'ID=cds28', 'ID=cds29', 'ID=cds30']
value ['length', '768', '4296', '1560', '1359', '1170', '1092', '468', '894', '696', '1980', '1605', '1548', '1389', '414', '1467', '1428', '1680', '999', '2151', '300', '225', '372', '462', '1014', '1212', '774', '1896', '2571', '1011', '582', '1635']
很奇怪,按理说如果不可以的话全部都不可以了。为什么呢?
因为是生成器(generator)
reader里面的东西只会读一次,读过后就删掉,是为了内存考虑。