第1个回答 2014-04-03
import itertools
def iterreadcolumnfromfile(
filehandle,
spliter=',',
col=0,
skiprow=0,
convertor=None,
):
"""打开的文本文件filehandle
是用spliter分隔的表格;
跳过skiprow行,
读取其中第col列的数据
用convertor转换读到数据 (默认的None不进行任何转换)
"""
convertfunc = convertor or (lambda x: x)
for rowid, columns in enumerate(itertools.imap(
lambda ln: ln.strip().split(spliter),
filehandle)):
if rowid < skiprow:
continue
try:
yield convertfunc(columns[col])
except:
yield None
filename = 'recorder.tsv'
with open(filename, 'rt') as handle:
datas = [x for x in iterreadcolumnfromfile(handle,
spliter='\t',
col=1,
skiprow=0,
convertor=float,
)]