Skip to content

Instantly share code, notes, and snippets.

@vpetro
Created October 17, 2012 17:46
Show Gist options
  • Save vpetro/3906995 to your computer and use it in GitHub Desktop.
Save vpetro/3906995 to your computer and use it in GitHub Desktop.

Revisions

  1. vpetro created this gist Oct 17, 2012.
    34 changes: 34 additions & 0 deletions gistfile1.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    import csv

    class csvreader(object):
    def __init__(self, filepath):
    self._filename = filepath
    reader = csv.DictReader(
    open(self._filename, 'rU')
    )
    self.fieldnames = reader.fieldnames
    self._rows = [
    row for row in reader
    ]

    self._rowcount = len(self._rows)

    def find(self, col_name, to_match, use_re=False):
    assert col_name in self._fieldnames

    for row in self._rows:
    if to_match in row[col_name]:
    return row
    if use_re:
    cur_value = row[col_name]
    if re.findall(to_match, cur_value):
    return row
    return None

    @property
    def rows(self):
    return self._rows

    @property
    def rowcount(self):
    return self._rowcount