conclusion fichier README.md
This commit is contained in:
@@ -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
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
## <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
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user