在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python中csv模塊讀取reader只能讀取一次

python中csv模塊讀取reader只能讀取一次

各位好,請問python讀取csv文件時只能讀取一次是為什么
現(xiàn)在有一個csv文件 大概是這個樣子
圖片描述

現(xiàn)在對ID和length進(jìn)行讀取

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)

結(jié)果第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 []

只能寫 讀取所有行數(shù)形成列表才能夠賦給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里面的東西只會讀一次,讀過后就刪掉,是為了內(nèi)存考慮。

with open('mytable.csv', r') as f:
    reader = csv.reader(f)
    ids, values = zip(*reader)
    
print(ids)
print(values)
2017年8月6日 17:03
編輯回答
哎呦喂

或者你可以試試 pandas 的 read_csv

2017年2月17日 18:09