import os class Measurement: def __init__(self, name, path=None, comment=None): self.name = name self.path = os.path.join(path or "./meas_values", self.name) os.makedirs(self.path) self.save_version_text(comment) self.data_files = {} # sensor_name: file_handler def append_data(self, sensor_name, data): """ Save data from a sensor. Write it into the corresponding file. TODO: file size limit, zip? data: list of tuples: (timestamp, value) """ if sensor_name not in self.data_files: self.data_files[sensor_name] = open(os.path.join(self.path, f"{sensor_name}_data.csv"), "w") for timestamp, value in zip(data[0], data[1]): self.data_files[sensor_name].write(f"{timestamp.isoformat()}, {timestamp.timestamp()}, {value}\n") def save_version_text(self, comment): with open(os.path.join(self.path, "version.txt"), "w") as file: file.write("Version 0.1\n") if comment: file.write(comment + "\n") file.write("More descriptions of relevant parameters\n")