41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
import json
|
|
|
|
class CabColumna:
|
|
def __init__(self, nombre_cabecera, n_campos):
|
|
self.nombre_cabecera = nombre_cabecera
|
|
self.n_campos = n_campos
|
|
self.indice=""
|
|
self.campos = ['' for _ in range(n_campos)]
|
|
def __repr__(self):
|
|
return f"CabColumna({self.nombre_cabecera!r}, {self.n_campos}, {self.campos})"
|
|
|
|
|
|
class ListaCabColumnas:
|
|
def __init__(self):
|
|
self.lista = []
|
|
|
|
def añadir(self, cab_columna):
|
|
if isinstance(cab_columna, CabColumna):
|
|
self.lista.append(cab_columna)
|
|
|
|
def eliminar(self, index):
|
|
if 0 <= index < len(self.lista):
|
|
del self.lista[index]
|
|
|
|
def exportar(self, ruta):
|
|
with open(ruta, 'w', encoding='utf-8') as f:
|
|
json.dump([{
|
|
'nombre_cabecera': c.nombre_cabecera,
|
|
'n_campos': c.n_campos,
|
|
'campos': c.campos
|
|
} for c in self.lista], f, indent=2, ensure_ascii=False)
|
|
|
|
def importar(self, ruta):
|
|
with open(ruta, 'r', encoding='utf-8') as f:
|
|
datos = json.load(f)
|
|
self.lista = [
|
|
CabColumna(d['nombre_cabecera'], d['n_campos']) for d in datos
|
|
]
|
|
for i, d in enumerate(datos):
|
|
self.lista[i].campos = d['campos']
|