import csv import os import re ROOT = os.path.dirname(os.path.abspath(__file__)) class Vector(complex): def __getitem__(self, index): if index == 0: return self.real elif index == 1: return self.imag else: raise IndexError def load(): def _read(iterable): for x, y in iterable: yield Vector(float(x), float(y)) def _load(filename): with open(filename) as fd: reader = csv.reader(fd) return list(_read(reader)) def _files(directory): for filename in os.listdir(directory): match = re.match(r"SWI_(-?\d+)\.csv", filename) if match: yield int(match.group(1)), os.path.join(directory, filename) return [(x, _load(y)) for x, y in sorted(_files(ROOT), key=lambda x: x[0])]