60 lines
2.4 KiB
Python
60 lines
2.4 KiB
Python
import csv
|
|
|
|
class Export:
|
|
def __init__(self):
|
|
pass
|
|
|
|
@staticmethod
|
|
def matrix_to_csv(dateiname, liste_spaltenbeschriftung, liste_zeilenbeschriftung, Matrix, beschriftung_kopfzeile = ""):
|
|
with open(dateiname, "w", newline="", encoding="utf-8") as csvfile:
|
|
writer = csv.writer(csvfile, delimiter=";")
|
|
|
|
kopfzeile = [beschriftung_kopfzeile]
|
|
for spaltenbeschriftung in liste_spaltenbeschriftung:
|
|
kopfzeile.append(str(spaltenbeschriftung))
|
|
writer.writerow(kopfzeile)
|
|
|
|
for zeilenbeschriftung, zeile in zip(liste_zeilenbeschriftung, Matrix.tolist()):
|
|
zeile_als_text = [zeilenbeschriftung]
|
|
for eintrag in zeile:
|
|
try:
|
|
eintrag_text = str(eintrag).replace(".", ",")
|
|
except Exception:
|
|
eintrag_text = str(eintrag)
|
|
zeile_als_text.append(eintrag_text)
|
|
writer.writerow(zeile_als_text)
|
|
|
|
@staticmethod
|
|
def ausgleichung_to_datei(dateiname, dict_ausgleichung):
|
|
with open(dateiname, "w", newline="", encoding="utf-8") as csvfile:
|
|
writer = csv.writer(csvfile, delimiter=";")
|
|
|
|
writer.writerow(["Parameter", "Wert"])
|
|
|
|
for key, value in dict_ausgleichung.items():
|
|
|
|
if hasattr(value, "tolist"):
|
|
rows = value.rows
|
|
cols = value.cols
|
|
|
|
writer.writerow([key, f"Matrix {rows}x{cols}"])
|
|
|
|
for i, zeile in enumerate(value.tolist()):
|
|
zeile_als_text = [f"{key}_zeile_{i+1}"]
|
|
for eintrag in zeile:
|
|
try:
|
|
eintrag_float = float(eintrag)
|
|
eintrag_text = f"{eintrag_float}".replace(".", ",")
|
|
except Exception:
|
|
eintrag_text = str(eintrag)
|
|
zeile_als_text.append(eintrag_text)
|
|
writer.writerow(zeile_als_text)
|
|
|
|
else:
|
|
try:
|
|
value_float = float(value)
|
|
value_text = f"{value_float}".replace(".", ",")
|
|
except Exception:
|
|
value_text = str(value)
|
|
|
|
writer.writerow([key, value_text]) |