Skip to content
Snippets Groups Projects
roscop.py 1.44 KiB
Newer Older
import csv
import shelve
import sys

class db:
    def __setattr__(self, name, value):
        self.__dict__[name] = value

jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed

# class roscop
# ------------
class Roscop:

  # constructor with values by default
    def __init__(self, file):
        self.file = file
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
        self.hash = {}

    # call by print()
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
    def __str__(self):
        # print("%s:" % row[key],  end='')
        # print()
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
        return 'Class Roscop, file: %s, size = %d' % (self.file, len(self.hash))

    def disp(self, theKey):
jacques Grelet's avatar
jacques Grelet committed
        #(a,b) = self.hash[theKey].items()
jacques Grelet's avatar
jacques Grelet committed
        print(self.hash.items())
        # for attr, value in d.__dict__.items():
jacques Grelet's avatar
jacques Grelet committed
        #print(attr, value)
jacques Grelet's avatar
jacques Grelet committed
        # print(d.__dict__)

    # read code roscop file
    def read(self):
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
        d = db()
        with open(self.file, 'rt') as f:
            reader = csv.DictReader(f, delimiter=';')
jacques Grelet's avatar
jacques Grelet committed
            #print("%s" % (reader.fieldnames))
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
            for key in reader.fieldnames:
                d.key = key

            for row in reader:
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
                theKey = row[reader.fieldnames[0]]
                for k in reader.fieldnames:
                    d.k = row[k]
                self.hash[theKey] = d
jacques Grelet's avatar
jacques Grelet committed
                #print("Key : %s" % theKey)

# for testing in standalone context
# ---------------------------------
if __name__ == "__main__":
    from roscop import Roscop
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
    r = Roscop("code_roscop.csv")
    r.read()
    print(r)
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
    r.disp('TEMP')
jacques.grelet_ird.fr's avatar
jacques.grelet_ird.fr committed
    r.disp('PSAL')