17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

364<br />

La bibliothèque standard<br />

TROISIÈME PARTIE<br />

Threads et processus<br />

Exercice 8 : Tkinter, recherche d’un texte dans des fichiers en tâche de<br />

fond<br />

Description<br />

Cet exercice propose d’aborder l’utilisation des threads avec un problème récurrent<br />

dès lors que l’on aborde la programmation d’interfaces graphiques : certains traitements<br />

prennent trop de temps pour que l’on puisse se permettre de laisser l’interface<br />

utilisateur inactive et bloquée.<br />

L’objectif de l’exercice est de concevoir une petite interface basée sur Tkinter qui permette<br />

à l’utilisateur de saisir un chemin et un texte (expression régulière). Le programme<br />

doit parcourir récursivement tous les fichiers du chemin et afficher dans la<br />

fenêtre graphique les fichiers qui contiennent le texte saisi.<br />

Ces fichiers doivent apparaître au fur et à mesure que le programme les trouve.<br />

Points abordés<br />

Interface Tkinter, les threads<br />

Solution<br />

Recherche en tâche de fond avec interface Tkinter<br />

#!/usr/bin/python<br />

# -*- coding: utf8 -*import<br />

os<br />

from os import walk<br />

from re import compile<br />

from threading import Thread<br />

from Tkinter import *<br />

from Tkconstants import *<br />

DEFAULT_BUFSIZE = 8*1024<br />

#<br />

# Thread de recherche<br />

#<br />

class SearchThread(Thread):<br />

""" Thread de recherche de texte<br />

"""

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!