CSV iterator

This commit is contained in:
madmaurice 2017-10-12 07:36:12 +02:00
parent 6e8a668a6a
commit 7cd2169829

43
csv.py Normal file
View file

@ -0,0 +1,43 @@
class CSVFile(object):
def __init__(self, filename):
self.filename = filename
def __iter__(self):
return CSVFileIterator(open(self.filename,"r"))
class CSVFileIterator(object):
def __init__(self, fh):
self.fh = fh
self.lines = iter(fh.readlines())
def __next__(self):
return CSVEntry(next(self.lines))
class CSVEntry(object):
def __init__(self,line):
self.data = line.split(";")
def getInt(self, index):
return int(self.data[index])
def getFloat(self, index):
return float(self.data[index])
def getString(self, index):
return self.data[index]
def __getitem__(self, index):
return self.getString(index)
def __iter__(self):
return iter(self.data)
def __len__(self):
return len(self.data)
if __name__ == "__main__":
from sys import argv
for entry in CSVFile(argv[1]):
for field in entry:
print("%10s" % field, end="")