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