|
On est toujours dans l'Atelier **B** : un graphique simple, avec un axe des x et un axe des y.
|
|
On est toujours dans l'Atelier **B** : un graphique simple, avec un axe des x et un axe des y.
|
|
|
|
|
|
|
|
Notions principales : **lire un fichier**, avec open ; **parser un fichier** à l'ancienne, avec split ; méthodes de type **read_csv** pour les fichiers bien structurés
|
|
|
|
Notions annexes: **module pandas"", **tkinter.filedialog**, **context manager**
|
|
|
|
|
|
Maintenant que l'on a quelques clés pour tracer un graphique, on va se placer dans un cas fréquent : on a un fichier et on souhaite visualiser les données.
|
|
Maintenant que l'on a quelques clés pour tracer un graphique, on va se placer dans un cas fréquent : on a un fichier et on souhaite visualiser les données.
|
|
De toutes façons, il faut savoir lire les données dans un fichier, donc c'est l'occasion de voir comment se débrouiller en Python.
|
|
De toutes façons, il faut savoir lire les données dans un fichier, donc c'est l'occasion de voir comment se débrouiller en Python.
|
|
|
|
|
... | @@ -106,10 +109,12 @@ Création de bouteille d'eau. |
... | @@ -106,10 +109,12 @@ Création de bouteille d'eau. |
|
Destruction de bouteille d'eau ; hop dans la poubelle verte.
|
|
Destruction de bouteille d'eau ; hop dans la poubelle verte.
|
|
|
|
|
|
Les actions définies par __enter__ et __exit__ ne sont exécutées que dans le second cas.
|
|
Les actions définies par __enter__ et __exit__ ne sont exécutées que dans le second cas.
|
|
En s'appuyant sur cette notion, on a proposé le script suivant pour gérer la création et la destruction de la fenêtre encadrant l'appel à une méthode de filedialog.
|
|
En s'appuyant sur cette notion, on a proposé deux scripts pour gérer la création et la destruction de la fenêtre encadrant l'appel à une méthode de filedialog.
|
|
|
|
Le premier, présenté ici, fait appel à une classe "fantôme", qui ne fait pas grand chose ; le seul intérêt réside dans ses méthodes __enter__ et __exit__ qui vont respectivement créer et détruire une instance de tkinter.Tk. L'appel à tkinter.filedialog.askopenfilename ou à tout autre module de tkinter se fait dans le bloc du with.
|
|
|
|
Le second, plus complet, prend en argument la fonction de tkinter.filedialog et l'exécute dans sa méthode __enter__ . Les méthodes sont exécutées dans cet ordre : __init__, __enter__ puis __exit__ ; pour vous en convaincre il suffit d'ajouter des **print**.
|
|
|
|
|
|
```python
|
|
```python
|
|
# application de la notion de context manager pour utiliser filedialog
|
|
# application de la notion de context manager pour utiliser filedialog; version simple
|
|
class FenetrePourDialogue:
|
|
class FenetrePourDialogue:
|
|
def __init__(self, titre="fenêtre temporaire"):
|
|
def __init__(self, titre="fenêtre temporaire"):
|
|
self.titre = titre
|
|
self.titre = titre
|
... | | ... | |