#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Jul 26 22:50:08 2021 @author: sekhmet """ import csv #chemin_data = "data/" #fichier_bingo = chemin_data+"bingo_data.txt" #fichier_changelog = chemin_data+"changelog_data.txt" # Au format : catégorie, phrase, réponses. #fichier_FAQ = chemin_data+"FAQ_data.txt" #fichier_changelog = chemin_data+"changelog_data.txt" def lire_fichier_csv_simple(fichier, minlong=2): """ lire un fichier csv et le renvoyer en tableau de tableaux minlong est la longueur minimale d'une ligne pour que ça soit accepté (plus court on ne met même pas)""" table=[] with open(fichier, "r") as fichier_csv: reader_notes = csv.reader(fichier_csv,delimiter=",",dialect="unix") for ligne in reader_notes: if len(ligne) >= minlong: # La ligne doit avoir plus de deux éléments table.append(ligne) return table def extraire_categories(table): """ extrait les catégories (1ere colonne du tableau de tableau) renvoie sous forme de liste""" liste_cat = [] for ligne in table: if not (ligne[0] in liste_cat): liste_cat.append(ligne[0]) return liste_cat def extraire_textes_par_cat(table): """ construit deux tables : une de catégories (liste simple) une autre qui est un tableau dont chaque élément est un tuple (phrase, reponses) où reponses est une liste (éventuellement vide) categ[i] va correspondre à tableqr[i] en terme de catégorie""" categ = extraire_categories(table) tableqr = [ [] for i in range(len(categ)) ] for ligne in table: try: cat = ligne[0] q = ligne[1] lister = ligne[2:] # Le reste ind = categ.index(cat) tableqr[ind].append((q,lister)) except: print("Impossible de lire la ligne : "+str(ligne)) return (categ,tableqr) def extraire_qr(table, listecateg): """ table est la table des remarques. On sélectionne uniquement les remarques des catégories de la liste et on enlève juste la catégorie en début de ligne Si listecateg est vide on met tout le monde. """ table2 = [] for ligne in table: if ligne[0] in listecateg or listecateg == []: table2.append(ligne[1:]) return table2