From 76a2c3306734e51086011804c7fe897ddec0ece1 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Fri, 26 Apr 2024 16:32:01 +0200 Subject: [PATCH] =?UTF-8?q?VERT:=20les=20module=20etrait=20bien=20les=20do?= =?UTF-8?q?nn=C3=A9es=20comme=20exprim=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python_tableur/excel2py.py | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 python_tableur/excel2py.py diff --git a/python_tableur/excel2py.py b/python_tableur/excel2py.py new file mode 100644 index 0000000..0a2df5c --- /dev/null +++ b/python_tableur/excel2py.py @@ -0,0 +1,49 @@ +import subprocess +import itertools +import io +import csv + +database = {} + + +def extract_to_csv(base): + subprocess.run(["libreoffice", "--convert-to", "csv", f"{base}.ods"]) + + +extract_to_csv("montableur") +print("Toto") + + +def debut_plage(line): + return not line.strip().startswith("DEBUT_PLAGE") + + +def get_lines(base): + with open(f"{base}.csv") as f: + csv_content = [l for l in f.readlines()] + return csv_content + + +def filter_interesting(lines_in): + data = itertools.dropwhile(debut_plage, lines_in) + lines = itertools.islice(data, 1, None) + return lines + + +contenu = get_lines("montableur") +meslignes = list(filter_interesting(contenu)) + + +def convertir_en_dictionnaires(lines): + with io.StringIO() as fake_stream: + fake_stream.writelines(lines) + fake_stream.seek(0) + reader = csv.DictReader(fake_stream) + rows = list(reader) + return rows + + +mes_donnees = convertir_en_dictionnaires(meslignes) + +for echantillon in mes_donnees: + database[echantillon["Nom"]] = echantillon