conclusion fichier README.md

This commit is contained in:
2022-02-09 19:15:42 +01:00
parent 372dfbf94c
commit e0ba706d14

View File

@@ -12,7 +12,7 @@ En informatique, il est courant de traiter d'importantes quantités d'informatio
> ***Contenu* **: Définition d'un fichier CSV, de données en table, recherche dans une table, fonction de tri <br>***Compétences* **: Savoir exporter et importer des données dans un programme Python depuis un fichier CSV > ***Contenu* **: Définition d'un fichier CSV, de données en table, recherche dans une table, fonction de tri <br>***Compétences* **: Savoir exporter et importer des données dans un programme Python depuis un fichier CSV
## Le programme ### Le programme
<br> <br>
@@ -20,13 +20,13 @@ En informatique, il est courant de traiter d'importantes quantités d'informatio
![bo_1.png](assets/bo.png) ![bo_1.png](assets/bo.png)
## <span style="color:blue"> Apport de connaissances </span> ### <span style="color:green"> Apport de connaissances </span>
Les données en table sont une composante essentielle de l'informatique : de très nombreuses entreprises utilisent sdes tableurs afin de traiter un gros volume de données. <p> Les données en table sont une composante essentielle de l'informatique : de très nombreuses entreprises utilisent sdes tableurs afin de traiter un gros volume de données. <p>
<p> <p>
En maîtrisant cet aspect, nous pourrons commencer à utiliser de petites bases de données pour nos activités, mais également travailler sur des projets plus intéressants. En maîtrisant cet aspect, nous pourrons commencer à utiliser de petites bases de données pour nos activités, mais également travailler sur des projets plus intéressants.
-----------
### <span style="color: green" > Enregistrements </span> ### <span style="color: green" > Enregistrements </span>
@@ -43,7 +43,7 @@ On peut donc représenter les notes d'une élève dans différentes disciplines
*Les clés sont parfois appelées champs ou attributs quand on parle de base de données* *Les clés sont parfois appelées champs ou attributs quand on parle de base de données*
-----------
### <span style="color: green" > Fichiers CSV</span> ### <span style="color: green" > Fichiers CSV</span>
@@ -55,8 +55,6 @@ Comme son nom l'indique, on sépare les colonnes (et donc les valeurs) par une *
Il permet donc de représenter une liste d'enregistrement ayant les même **champs**. Il permet donc de représenter une liste d'enregistrement ayant les même **champs**.
*Attention, quand on travaille sur des nombres, en France nous utilisons des virgules, alors que dans les pays anglo-saxons, c'est le point qui sépare la partie entière de la partie décimale*
→ Exemple de feuille de calcul<br> → Exemple de feuille de calcul<br>
| Prénom | DS1 | DS2 | Projet | | Prénom | DS1 | DS2 | Projet |
| ------------ | ---- | ---- | ------ | | ------------ | ---- | ---- | ------ |
@@ -77,5 +75,89 @@ Donatello; 13; 15; B
Chaque ligne est un ***enregistrement***. La première ligne définit les ***attributs*** de chaque enregistrement. Chaque ligne est un ***enregistrement***. La première ligne définit les ***attributs*** de chaque enregistrement.
------------------
### <span style="color: green" > Implémentation en Python</span>
On peut choisir de représenter en Python les fichiers **CSV** par des listes de dictionnaires dont les clés sont les noms des colonnes.
Par exemple, avec le tableau du dessus, cela donne :
```python
Notes =
[{'Prénom' : 'Michelangelo', 'DS1' : '12', 'DS2' : '14', 'Projet' : 'B'},
{'Prénom' : 'Leonardo', 'DS1' : '15', 'DS2' : '16', 'Projet' : 'A'},
{'Prénom' : 'Raphael', 'DS1' : '10', 'DS2' : '12', 'Projet' : 'C'},
{'Prénom' : 'Donatello', 'DS1' : '13', 'DS2' : '15', 'Projet' : 'B'}]
```
On peut utiliser le vocabulaire décrivant une feuille de calcul de tableau :
- Une table est une liste de dictionnaire, ici **Notes**
- Chaque ligne est un dictionnaire et correspond à un enregistrement, par exemple **Notes[0]**
- Chaque cellule contient la valeur d'une clé du dictionnaire, par exemple **Notes[0] ['DS2']**
-----------------
### <span style = "color : green">Import d'un fichier CSV </span>
Il existe un module Python nommé *CSV* qui permet de manipuler ces fichiers.
On va donc créer une liste de dictionnaires, soit un par ligne de la table.
```python
import csv
def import_csv(fichier):
lecteur = csv.Dictreader(open(fichier + '.csv', 'r'))
return [dict(ligne) for ligne in lecteur ]
```
Ce qui nous donne :
```python
[{'Prénom' : 'Michelangelo', 'DS1' : '12', 'DS2' : '14', 'Projet' : 'B'},
{'Prénom' : 'Leonardo', 'DS1' : '15', 'DS2' : '16', 'Projet' : 'A'},
{'Prénom' : 'Raphael', 'DS1' : '10', 'DS2' : '12', 'Projet' : 'C'},
{'Prénom' : 'Donatello', 'DS1' : '13', 'DS2' : '15', 'Projet' : 'B'}]
```
On peut également manipuler les fichiers afin de lire puis de le transformer en tableau :
```python
import csv
def import_csv2():
resultat = []
with open('notes.csv',newline = '') as csvfile:
s = csv.reader(csvfile,delimiter = ';')
for i in s:
resultat.append(i)
return resultat
```
On obtient donc ici la liste suivante :
```python
resultat = [['Prenom', 'DS1', 'DS2', 'Projet'], ['Michelangelo', '12', '14', 'B'],
['Leonardo', '15','16', 'A'], ['Raphael', '10', '12', 'C'], ['Donatello' '13', '15', 'B']]
```
-------
### <span style = "color : green">Export d'un fichier CSV </span>
Pour exporter une table vers un fichier CSV - *comprendre, créer un fichier csv depuis une table python* - on va entrer le nom de la table sous forme de chaine de caracteres. On donnera l'ordre des colonnes sous forme de liste d'attributs.
```python
def vers_csv(nom, ordre):
with open(nom + '.csv', 'w') as fic:
dic = csv.DictWriter(fic, fieldnames = ordre)
table = eval(nom)
dic.writeheader() # première ligne, celle des attributs
for ligne in table:
dic.writelow(ligne) # ajoute les lignes de la table
return None
```