Не удается поймать InvalidFileException - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь получить путь к файлу через filedialog от tkinter, но вместо выбора файла я закрываю окно, чтобы найти этот файл, что делает мой GUI go немного сумасшедшим. Когда я закрываю окно просмотра, я вижу следующий журнал:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Shtlrs\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "D:\Invoice handling\GUITest.py", line 76, in browseXLL
    self.man = xManip.XManip(file)
  File "D:\Invoice handling\xManip.py", line 13, in __init__
    self.sheet = openpyxl.load_workbook(path)
  File "D:\Invoice handling\venv\lib\site-packages\openpyxl\reader\excel.py", line 313, in load_workbook
    data_only, keep_links)
  File "D:\Invoice handling\venv\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
    self.archive = _validate_archive(fn)
  File "D:\Invoice handling\venv\lib\site-packages\openpyxl\reader\excel.py", line 94, in _validate_archive
    raise InvalidFileException(msg)
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support  file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm

Что я хочу сделать, это перезапустить GUI (или, возможно, в конечном итоге другое действие), когда я закрываю окно просмотра, вот фрагмент кода это должно справиться с ситуацией:

from tkinter import messagebox
from tkinter import filedialog

from openpyxl.utils.exceptions import InvalidFileException
...

    def browseXLL(self,event):
        try:
            file = filedialog.askopenfilename()
        except InvalidFileException:

            self.window.destroy()
            self.__init__()

но ошибка n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...