# HG changeset patch # User Jeff Hammel # Date 1512942990 28800 # Node ID b69efcf85807b1fd0cbb34286f1b27fe70f16b6a # Parent 59c91bfb6c06aad5cb638bb77ab356c3fe29fcbb [module] add columns diff -r 59c91bfb6c06 -r b69efcf85807 lemuriformes/columns.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lemuriformes/columns.py Sun Dec 10 13:56:30 2017 -0800 @@ -0,0 +1,30 @@ +""" +Load a CSV file by columns +""" + + +import csv +from .decorators import fileobj + + +@fileobj +def read_columns(fp, type=dict): + """read columns from CSV `fp` as `type`""" + + reader = csv.reader(fp) + columns = None + + for row in reader: + + if columns is None: + # read the header + header = row + + # make a return value + columns = type([(key, []) for key in header]) + continue + + for key, value in zip(header, row): + columns[key].append(value) + + return columns