Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from collections import OrderedDict
  4. import csv
  5.  
  6. def nl(data):
  7. """ remove new lines """
  8. return data.replace('\r', '').replace('\n', '')
  9.  
  10.  
  11. class CsvFileReader(object):
  12. class Row(object):
  13. def __init__(self, data, _columns):
  14. self.data = data
  15. self._columns = _columns
  16.  
  17. def get(self, key, typ=None):
  18. return nl(self.data[self._columns[key]])
  19.  
  20. def __init__(self, filename):
  21. self.filename = filename
  22.  
  23. def __iter__(self):
  24. _columns = OrderedDict()
  25. with open(self.filename, 'r') as data:
  26. spamreader = csv.reader(data, delimiter=',')
  27. for i, row in enumerate(spamreader):
  28. if i == 0:
  29. for j, label in enumerate(row):
  30. _columns.update({nl(label): j})
  31. else:
  32. r = self.Row(row, _columns)
  33. if any(r.data):
  34. yield r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement