On Tue, Oct 6, 2015 at 12:48 AM, Chris Angelico <ros...@gmail.com> wrote: > fn = "tmp1.csv" > fin = open(fn, 'rb') > rdr = csv.DictReader(fin, delimiter=',') > # all the same down to here > blanks = set(rdr.fieldnames) > for row in data: > blanks = {col for col in blanks if not row[col]} > mt = [col for col in rdr.fieldnames if col not in blanks] > print mt
Oops, premature send - hadn't proofread it yet. fn = "tmp1.csv" fin = open(fn, 'rb') rdr = csv.DictReader(fin, delimiter=',') # all the same down to here blanks = set(rdr.fieldnames) for row in rdr: blanks = {col for col in blanks if not row[col]} mt = [col for col in rdr.fieldnames if col not in blanks] print mt Though I still haven't tested it, so there may be other bugs. Broadly speaking, though, what it does is quite simple: start by assuming that every column is nothing but blanks, and then any time you find a non-blank cell, remove it from the set of blanks. At the end, all field names not present in the set of blanks are non-blanks. ChrisA -- https://mail.python.org/mailman/listinfo/python-list