Функция запускается при нажатии кнопки - PullRequest
0 голосов
/ 26 мая 2020

Я создаю приложение windows, используя Python 3.x. У меня здесь есть моя функция:

def deletefolder(): 
    currentUser=os.getlogin()
    folderPath="C:/users/{username}/appdata/roaming/Strategy Folder/Home/PROFIILE/CACHE".format(username=getpass.getuser())
    shutil.rmtree(folderPath)  
    os.rmdir(folderPath) 

delbtn = Button(deltab, text="Delete Cache", command=deletefolder)
delbtn.pack(pady=20)

Когда я go проверяю это, он сразу запускает функцию «deletefolder». Я хочу, чтобы он запускался, когда я нажимаю кнопку. Я попытался сделать оператор if / then, а затем показать ярлык, что он завершен. Вместо этого он, кажется, продолжает работать и выдает ошибку: папки больше нет (потому что код действительно работает, чтобы удалить папку). Я просмотрел несколько статей здесь, и, похоже, лучше всего сработает if / then. Но если он запущен в начале, когда программа запускается, это нехорошо, так как он будет занимать ресурсы, которые будут выполняться снова и снова.

Спасибо за помощь.

1 Ответ

0 голосов
/ 26 мая 2020

Импортировать окно сообщений:

from tkinter import messagebox

И использовать try-except:

def deletefolder(): 
    try:
        currentUser=os.getlogin()
        folderPath="C:/users/{username}/appdata/roaming/Strategy Folder/Home/PROFIILE/CACHE".format(username=getpass.getuser())
        shutil.rmtree(folderPath)  
        os.rmdir(folderPath) 
    except Exception:
        messagebox.showinfo('Warning','Folder not exist')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...