Le module Filedialogue Python Tkinter

Tkinter Ouvrir un fichier La fonction askopenfilename pour créer un objet de dialogue de fichier. Les extensions sont affichées au bas du formulaire (type de fichier). Le code ci-dessous affichera simplement la boîte de dialogue et renverra le nom du fichier. Si un utilisateur appuie sur annuler, le nom du fichier est vide. Sur un ordinateur Windows, changez initialdir en “C: \”. La méthode askopenfilename () renvoie une chaîne qui correspond au chemin du fichier sélectionné par l'utilisateur. Si l'utilisateur décide d'appuyer sur Annuler, une chaîne vide est renvoyée. À la ligne 7, nous renvoyons le chemin d'accès à la variable f, puis à la ligne 15 (qui n'est exécutée qu'après la fermeture de la boîte de dialogue de fichier), le chemin est imprimé dans la console.



1-  Le module Filedialogue et les méthodes associées

FileDialog est un module avec des fonctions de dialogues d'ouverture et de sauvegarde, qui pourra vous aider à améliorer votre interface graphique Tkinter pour ouvrir ou sauvegarder vos fichiers.
Le module Filedialogue est doté de trois principale méthodes:

  1. askopenfilename() : affiche une boite de dialogue qui demande l'ouverture d'un fichier existant.
  2. asksaveasfilename() : affiche une boite de dialogue qui permet d'enregistrer un fichier
  3. askdirectory() : affiche une boite de dialogue qui demande l'ouverture d'un répertoire.

2- La méthode askopenfilename

Comme nous l'avons expliqué ci haut, cette méthode affiche une boite de dialogue qui demande de sélectionner le ficher à ouvrir et récupère le fichier avec son chemin sur une variable. Elle possède les paramètres suivants :

  1. initialdir : qui permet de pointer vers un répertoire intial dès son ouverture.
  2. title : qui permet de personnaliser le titre de la boite de dialogue
  3. filetypes : qui permet de spécifier les types de fichiers à ouvrir

Exemple. methode askopenfilename

from tkinter import filedialog 
from tkinter import *

filename = filedialog.askopenfilename(initialdir= "/",title="Select File",filetypes=(("png files","*.png"),("jpeg files","*.jpg"),("all files","*.*"))) 
print(filename)

En exécutant ce code on verra apparaitre la boite de dialogue suivante qui pointe vers la racine du disque C:\

15-file-dialogue-ask-open-file-name

Remarque

Vous avez sans doute remarqué qu'une petite fenêtre popup s'affiche avec la boite de dialogue ! Pour se débarrasser de cette dernière il suffit d'utiliser la méthode withdraw():

from tkinter import filedialog 
from tkinter import *
Tk().withdraw() 
filename = filedialog.askopenfilename(initialdir= "/",title="Select File",filetypes=(("png files","*.png"),("jpeg files","*.jpg"),("all files","*.*"))) 
print(filename)

3- La méthode asksaveasfilename

Cette méthode est semblable à la précendente à la différence qu'elle enregistre un fichier au lieu de l'ouvrir et elle possède donc exactement les mêmes paramètres.

Exemple. méthode asksaveasfilename

from tkinter import filedialog 
from tkinter import *
Tk().withdraw()
filename = filedialog.asksaveasfilename(initialdir = "/",title = "Select file",filetypes = (("png files","*.png"),("jpeg files","*.jpg"),("all files","*.*"))) 
print(filename)

4 -  La méthode askdirectory

Comme nous l'avons déjà mentionné, cette méthode demande à l'utilisateur de choisir le répertoire à ouvrir. Quand l'utilisateur sélectionne un répertoire ce dernier sera stocké dans une variable du type string qui contient le chemin vers le répertoire sélectionné.

Exemple. méthode askdirectory

from  tkinter import * 
from tkinter import filedialog  

Tk().withdraw()
myDirectory = filedialog.askdirectory() 
print (myDirectory)





 

Younes Derfoufi
CRMEF OUJDA

4 thoughts on “Le module Filedialogue Python Tkinter

  1. Bonjour,

    merci pour les contenus. J’ai une question:

    pourquoi avec la methode asksaveasfilename l’on termine la suite d’instruction par “print(filename)” alors que le but n’est pas d’ouvrir le fichier mais plutot de le sauvegarder?

    J’ai du mal a saisir la logique.

  2. Bonjour,
    Un grand merci pour vos cours que j’apprécie beaucoup.

    Lors de l’exécution du code source partie1, 2 ou 3 le message d’erreur ci-dessous s’affiche:
    Traceback (most recent call last):
    File “C:\Users\Alain\python3\adressBookPart3.py”, line 12, in
    from PIL import Image, ImageTk
    ModuleNotFoundError: No module named ‘PIL’
    J’utilise la version 3.7 de Python.
    Avec mes remerciements.

Leave a Reply