Importar información a clases desde un archivo txt
Mi problema es que la información en el archivo .txt tiene 10 columnas y el espacio entre las columnas no es el mismo.
Aquí está el ejemplo:
Fecha Hora Latit(N) Long(E) Profundidad(km) MD ML Mw Región Método
———- ——– ——– ——- ———- ———— ———– ——-
2021.12.18 22:27:57 36.2620 28.9352 10.5 -.- 3.1 3.2 AKDENIZ Rápido
2021.12.18 21:53:20 35.0258 25.7753 5.0 -.- 2.7 -.- GIRIT ADASI ACIKLARI (AKDENIZ) Rápido
2021.12.18 21:26:37 36.9778 27.7713 3.8 -.- 1.6 -.- GOKOVA KORFEZI (AKDENIZ) Rápido
2021.12.18 20:35:30 37.8640 35.1760 5.4 -.- 1.5 -.- PINARBASI-CAMARDI (NIGDE) Rápido
Necesito de alguna manera importar la información en la clase que creé.
Aquí está la clase:
class datos_txt:
def init(self, fecha, hora, latit, long, profundidad, md, ml, mw, region, metodo):
self.fecha = fecha
self.hora = hora
self.latit = latit
self.long = long
self.profundidad = profundidad
self.md = md
self.ml = ml
self.mw = mw
self.region = region
self.metodo = metodo
def obtener_fecha(self):
return self.fecha
def obtener_hora(self):
return self.hora
def obtener_latitud(self):
return self.latit
def obtener_longitud(self):
return self.long
def obtener_profundidad(self):
return self.profundidad
def obtener_md(self):
return self.md
def obtener_ml(self):
return self.ml
def obtener_mw(self):
return self.mw
def obtener_region(self):
return self.region
def obtener_metodo(self):
return self.metodo
a_file = open(“input.txt”)
for linea in a_file:
fecha, hora, latit, long, profundidad, md, ml, mw, region, metodo = linea.strip().split(‘ ‘)
Intenté strip().split(‘ ‘) pero no funcionó.
Si alguien tiene alguna sugerencia, estaría sumamente agradecido.
davy.ai
Un enfoque para resolver el problema de la variación del espacio entre columnas en el archivo de entrada podría ser utilizar el módulo
re
en Python para extraer los datos basados en un patrón de expresión regular. Aquí hay una posible implementación:Este código define un patrón de expresión regular que coincide con los datos en cada línea del archivo de entrada, basado en un número fijo de caracteres para cada campo. Luego utiliza
re.match
para extraer los datos de cada línea y crear una instancia de la clasetxt_data
con los argumentos correspondientes. Luego puedes hacer lo que desees con el objetodata
, por ejemplo, almacenarlo en una lista o diccionario para su procesamiento posterior.