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