Comment sélectionner un fichier en Python avec Tkinter ?

Par : TutorialsGrey, le 07 Janvier 2022

Si vous vous êtes déjà demandé comment fonctionnent les boîtes de dialogue dans une application Python, alors vous avez probablement fini par entendre parler du module filedialog dans Tkinter. Le module filedialog contient un certain nombre de fonctions intégrées qui peuvent être utilisées pour afficher différents types de boîtes de dialogue pour traiter les fichiers du système.

Dans la plupart des cas, nous utilisons la fonction filedialog.askopenfilename() pour demander à l'utilisateur de parcourir et de sélectionner un fichier du système. En fonction du type de fichier sélectionné, le script est programmé pour effectuer une opération d'écriture ou de lecture.

Une fois qu'un fichier est sélectionné, vous pouvez utiliser la fonction open(file, 'mode') pour ouvrir et effectuer des opérations dans n'importe quel mode. Le mode du fichier représente le type d'opération à effectuer sur le fichier. Pour le démontrer, prenons un exemple où nous allons créer un petit programme qui demandera à l'utilisateur de sélectionner un fichier texte dans le système. Une fois qu'un fichier est sélectionné et ouvert, nous pouvons lire le contenu du fichier en utilisant le mode "r" qui signifie read.

 

Exemple

# Importation des bibliothèques
from tkinter import *
from tkinter import filedialog

# Création d'une instance de fenêtre
win=Tk()

# Définir les dimensions de la fenêtre
win.geometry("750x250")

# Créer un libellé
Label(win, text="Cliquez sur le bouton Ouvrir ci-dessous pour sélectionne un fichier texte", font='Arial 16 bold').pack(pady=15)

# Fonction pour sélectionner un fichier dans le système
def open_file():
   filepath = filedialog.askopenfilename(title="Ouvrir un fichier texte", filetypes=(("fichiers texte","*.txt"), ("tous les fichiers","*.*")))
   file = open(filepath,'r')
   print(file.read())
   file.close()

# Créer un bouton pour générer une boîte de dialogue
button = Button(win, text="Ouvrir", command=open_file)
button.pack()

win.mainloop()


Résultat

L'exécution du code ci-dessus affichera une fenêtre avec un bouton pour générer une boîte de dialogue.

Une fois que vous avez sélectionné et ouvert un fichier texte, le terminal ou invité de commande affichera tout le contenu de ce fichier.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.