From cb171877a733136e0cfb3b3a17c48d57568d27b4 Mon Sep 17 00:00:00 2001 From: Martina Barreiro Guerra <martina.barreiro@fing.edu.uy> Date: Mon, 4 Jul 2022 14:09:44 -0300 Subject: [PATCH] Archivos --- "IMPETOM-Cl\303\255nico/Archivos.py" | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "IMPETOM-Cl\303\255nico/Archivos.py" diff --git "a/IMPETOM-Cl\303\255nico/Archivos.py" "b/IMPETOM-Cl\303\255nico/Archivos.py" new file mode 100644 index 0000000..d2e3c50 --- /dev/null +++ "b/IMPETOM-Cl\303\255nico/Archivos.py" @@ -0,0 +1,61 @@ +import array +from ImpetomCError import ImpetomCError +import numpy as np + + +class Archivos: + """ + El objetivo de esta clase es poder implementar la lectura y escritura de archivos de texto + """ + + def __init__(self,nombre): + """ + Creación del objeto archivo de texto. + + :param nombre: Nombre del archivo de texto + + :exception ImpetomCError: Devuelve una excepción indicando que el archivo no es un txt + """ + + if nombre.endswith('.txt'): + self.nombre = nombre + else: + raise ImpetomCError("El archivo de texto debe ser un txt") + + + + def leerArchivo(self): + """ + Permite la lectura de un archivo de texto con el formato de datos de ImpetomC. Es decir lee un archivo con 208 de números de tipo float + + :returns: **medidas** - Retorna un vector con 208 valores de tipo float. + :exception ImpetomCError: En caso de que el archivo no tenga el formato esperado, devuelva una excepción. + """ + + medidas = array.array('f',[]) + try: + with open(self.nombre,'r') as file: + for i in range(0,208): + dato = float(file.readline()) + medidas.insert(i,dato) + file.close() + return np.asarray(medidas) + except ValueError: + raise ImpetomCError("El archivo especificado no contiene datos con formato de ImpetomC") + + def escribirArchivo(self,medidas): + """ + Permite la escritura de un archivo de texto con las medidas realizadas por el dispositivo Impetom + + :param medidas: vector de 208 medidas + + :exception ImpetomCError: Devuelve un error indicando que el vector medidas no contine datos con el formato requerido + """ + + if len(medidas) != 208: + raise ImpetomCError("El vector de entrada no contiene datos de impetomC") + with open(self.nombre,'w') as file: + for i in medidas: + dato = str(i) + "\n" + file.write(dato) + file.close() -- GitLab