Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)

Ceci est un mémo de la procédure d'utilisation de la boîte de dialogue de fichier avec tkinter.

Sélectionnez un dossier

Vous pouvez utiliser tkinter.filedialog.askdirectory pour ouvrir une boîte de dialogue de sélection de dossier. Spécifiez le répertoire initial avec initialdir.

python


import tkinter.filedialog
iDir = os.path.abspath(os.path.dirname(__file__))
folder_name = tkinter.filedialog.askdirectory(initialdir=iDir)

Sélectionner un fichier

Ouvrez la boîte de dialogue de fichier avec tkinter.filedialog.askopenfilename. Spécifiez le modèle des fichiers candidats avec les types de fichiers et spécifiez le répertoire à ouvrir en premier avec initialdir. Pour sélectionner plusieurs fichiers, utilisez tkinter.filedialog.askopenfilenames.

python


import tkinter.filedialog
fTyp = [("", "*")]
iDir = os.path.abspath(os.path.dirname(__file__))
file_name = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)

Vous pouvez spécifier l'extension de fichier. Donnez dans l'ordre du titre et du motif.

python


fTyp = [("fichier de données", "*.csv;*.xlsx;*.xls")]

Vous pouvez également sélectionner par correspondance partielle du nom de fichier.

python


fTyp = [("fichier journal", "log*")]

Exemple d'utilisation

Lorsque vous l'utilisez, je pense qu'il est préférable de l'utiliser comme ça.

python


import os
import tkinter as tk
import tkinter.filedialog

class TkinterClass:
    def __init__(self):
        root = tk.Tk()
        root.geometry("500x350")

        button = tk.Button(root, text='Boîte de dialogue Ouvrir un fichier', font=('', 20),
                           width=24, height=1, bg='#999999', activebackground="#aaaaaa")
        button.bind('<ButtonPress>', self.file_dialog)
        button.pack(pady=40)

        self.file_name = tk.StringVar()
        self.file_name.set('Non séléctionné')
        label = tk.Label(textvariable=self.file_name, font=('', 12))
        label.pack(pady=0)

        button = tk.Button(root, text='Boîte de dialogue Ouvrir un dossier', font=('', 20),
                           width=24, height=1, bg='#999999', activebackground="#aaaaaa")
        button.bind('<ButtonPress>', self.folder_dialog)
        button.pack(pady=40)

        self.folder_name = tk.StringVar()
        self.folder_name.set('Non séléctionné')
        label = tk.Label(textvariable=self.folder_name, font=('', 12))
        label.pack(pady=10)

        root.mainloop()

    def file_dialog(self, event):
        fTyp = [("", "*")]
        iDir = os.path.abspath(os.path.dirname(__file__))
        file_name = tk.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
        if len(file_name) == 0:
            self.file_name.set('Sélection annulée')
        else:
            self.file_name.set(file_name)

    def folder_dialog(self, event):
        iDir = os.path.abspath(os.path.dirname(__file__))
        folder_name = tk.filedialog.askdirectory(initialdir=iDir)
        if len(folder_name) == 0:
            self.folder_name.set('Sélection annulée')
        else:
            self.folder_name.set(folder_name)


if __name__ == '__main__':
    TkinterClass()
Essayons

De côté

Fonctionne bien à l'importation


import tkinter as tk
import tkinter.filedialog
tk.filedialog.askdirectory(initialdir=iDir)

Importation qui ne fonctionne pas


import tkinter as tk
tk.filedialog.askdirectory(initialdir=iDir)

Pourquoi! ??

Recommended Posts

Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)
Faisons une interface graphique avec python.
Créer un fichier power simple avec Python
J'ai créé un fichier de configuration avec Python
Comment lire un fichier CSV avec Python 2/3
J'ai créé une application graphique avec Python + PyQt5
Créer un fichier exécutable GUI créé avec tkinter
Opération de fichier avec open - "../"
Vous pouvez facilement créer une interface graphique même avec Python
Créer un fichier au format Photoshop (.psd) avec python
Lire ligne par ligne à partir d'un fichier avec Python
Exécuter un fichier Python avec une importation relative dans PyCharm
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créer un fichier CAO 2D ".dxf" avec python [ezdxf]
Dessiner un fichier netCDF avec python
[GUI en Python] PyQt5-Layout management-
Faites une loterie avec Python
Créer un répertoire avec python
[GUI avec Python] PyQt5-Préparation-
Télécharger le fichier csv avec python
[GUI avec Python] PyQt5 -Paint-
Sélectionnez le fichier dans la boîte de dialogue avec python → Afficher le nom du fichier dans la boîte de message
Créer une interface graphique aussi facilement que possible avec python [édition tkinter]
[Python] Qu'est-ce qu'une instruction with?
Extraire le fichier xz avec python
Faites fonctionner l'imprimante de reçus avec python
Manuel de graphisme Python avec Matplotlib.
[Python] Ecrire dans un fichier csv avec Python
Créer une interface graphique python à l'aide de tkinter
[Automatisé avec python! ] Partie 1: fichier de configuration
Téléchargement de fichiers implémenté avec Python + Bottle
Créer un fichier deb avec Docker
Résoudre ABC166 A ~ D avec Python
Sortie vers un fichier csv avec Python
Créez un environnement virtuel avec Python!
Ouvrez UTF-8 avec BOM en Python
J'ai fait une loterie avec Python.
Créer un fichier binaire en Python
Créer un environnement virtuel avec Python 3
[GUI en Python] PyQt5-Glisser-déposer-
Résoudre ABC168 A ~ C avec Python
Créer un système de recommandation avec python
[Python] Générer un mot de passe avec Slackbot
Résoudre ABC162 A ~ C avec Python
Résoudre ABC158 A ~ C avec Python
Faisons un graphe avec python! !!
[Automatisé avec python! ] Partie 2: Fonctionnement des fichiers
[GUI avec Python] PyQt5-Widget personnalisé-
Ouvrir le fichier avec l'application par défaut
Dessinez un graphique avec l'interface graphique PySimple
[Python] Hériter d'une classe avec des variables de classe
J'ai créé un démon avec Python
Ecrire un script batch avec Python3.5 ~
Créer un téléchargeur de fichiers avec Django
Lisez le fichier en Python avec un chemin relatif depuis le programme
L'idée d'alimenter le fichier de configuration avec un fichier python au lieu de yaml
[Python] Lire un fichier csv avec une grande taille de données à l'aide d'un générateur
[ROS2] Comment lire un fichier bag avec le lancement au format python
Essayez d'ajouter un mur à votre fichier IFC avec IfcOpenShell python
[Pyenv] Construire un environnement python avec ubuntu 16.04