Bonjour

Je ne parviens pas a voir comment détecter et prendre en charge le fait de cliquer sur le bouton annuler dans ce programme.
Sur tout comment régler lemassage d'exception AttributeError dans l'appel
line 54, in <module>
if le_fichier.nom_fichier == None:
AttributeError: 'recherche_fichier' object has no attribute 'nom_fichier'

il semble que ce soit def explorateur_window(repertoireinit):

La classe class recherche_fichier(): contient bien 3 variables dont la zone nom_fichier

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# coding: utf-8  
import threading
 
import tkinter 
from tkinter.filedialog import askopenfilename
import os 
 
 
'''Created on 21 aout 2017 
@ 
'''
def explorateur_window(repertoireinit):
    """ Explorateur Windows    """
    root = tkinter.Tk()
 
    filename = tkinter.filedialog.askopenfilename(
        initialdir=repertoireinit,
        title="Choisir votre fichier",
        filetypes=(
            ("Tous type de fichier","*.*") ,
        )
    )
 
    return filename
pass
 
class recherche_fichier():
    nom_fichier :str
    repertoire : str
    nom_complet: str 
 
 
    def __init__(self,depart):
        '''
        Constructor
        '''
        nom_fichier = None
        repertoire = None
        nom_complet = None
 
        self.nom_complet = explorateur_window(depart) # Recherche via explorateur  nom_fichier_path_in
 
        if self.nom_complet != None :
            if os.path.isfile(self.nom_complet):
 
            # Ouverture du fichier destination
                self.nom_fichier = os.path.basename(self.nom_complet) # Retourne le nom du fichier
                #print(self.nom_fichier)
                self.repertoire = os.path.dirname(self.nom_complet) # Retourne le répertoire complet
                #print(self.repertoire  )
 
if __name__ == '__main__':
    le_fichier = recherche_fichier(".//")
    if le_fichier.nom_fichier == None:
        print("Pas de fichier choisi" )
    else:
        print(le_fichier)
        print(le_fichier.repertoire)
        print(le_fichier.nom_fichier)