Vous êtes sur la page 1sur 3

1ere N.S.

I Indexer, rechercher, trier, fusionner des tables

SYNTHESE : Synthèse Traitement des données en tables

Extrait de NSI Spécialité, Cours entrainement HATIER

2
5

8
7

1- Conversion odt, xls, xlx vers format CSV ( tableur importer )

614288153.doc 1/3
2- Conversion format CSV vers odt, xls, xlx ( tableur exporter)

, )

3- Import CSV (python) 4- Export vers fichier CSV (python)

import csv import csv


def depuis_csv(fichier): def vers_csv(fichier, nom, ordre):
lecteur = csv.DictReader(open(fichier + ".csv", 'r')) with open(fichier + ".csv", 'w', newline='') as csvfile:
return [dict(ligne) for ligne in lecteur] # dic = csv.DictWriter(csvfile,fieldnames=ordre)
dic.writeheader() # écrire la 1er ligne, celle des
depuis_csv("ident_virgule") attributs
for ligne in table:
dic.writerow(ligne) # ajoute les ligne de la table
return None

ordre = ["Nom", "Anglais", "Info", "Maths"]


nom_fichier_export = "export_table"
vers_csv(nom_fichier_export, table, ordre)

5- Sélection de lignes vérifiant un critère 6- Sélection de colonnes vérifiant un attribut

def select_ligne(table, critere) :


def projection(table, list_attributs):
Resultat = []
return [{cle:ligne[cle] for cle in ligne if cle in
for ligne in table:
list_attributs} for ligne in table]
if eval(critere) :
Resultat.append(ligne)
projection(Table1, ["Nom" , "Info"])
return Resultat
Critere = "eval(ligne['Maths']) > 16"
select_ligne(Table1, Critere)

614288153.doc 2/3
7- Tri d’une table selon une colonne 8- Jointure de table ou (fusion)

def tri(table, attribut, ordre_tri): from copy import deepcopy


def critere(ligne): def Jointure(table1, table2, cle1, cle2) :
return ligne[attribut] new_table = []
return sorted(table, key=critere, reverse=ordre_tri) for ligne1 in table1 :
for ligne2 in table2 :
tri(Table1, "Anglais", True) if ligne1[cle1] == ligne2[cle2] :
new_ligne = deepcopy(ligne1)
for cle in ligne2 :
argument1 est la table à trier if cle != cle2 :
argument2 est la clé = nom de la colonne à trier new_ligne[cle] = ligne2[cle]
argument3 est la reverse=True(décroissant) ou new_table.append(new_ligne)
False(croissant) return new_table

fusion = Jointure(Table1, Table2, "Nom", "Nom")


print(fusion)

614288153.doc 3/3

Vous aimerez peut-être aussi