Предотвращение появления консоли ошибок с помощью файла .exe

Я создал exe-файл, используя autopy для exe.

Вначале я прошу пользователя ввести файл для использования, используя следующий код:

filename = filedialog.askopenfilename(initialdir = "/", title = "Select file to convert")

Но когда пользователь нажимает «Отмена» или нажимает «X» в правом верхнем углу, появляется код ошибки, как вы можете видеть на изображении.

Предотвращение появления консоли ошибок с помощью файла .exe

как остановить выполнение кода, если пользователь нажмет один из двух вариантов, упомянутых выше, чтобы код ошибки не отображался?

Я знаю, что некоторые вопросы уже были заданы по аналогичной теме, но я не мог адаптировать их к моему случаю. Я надеюсь, что я был достаточно ясен

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Просто проверьте, существует ли указанный путь с помощью os.path.exists(filename)

Можете ли вы быть более конкретным, пожалуйста? я не очень понимаю, как это поможет мне решить проблему

Johan KOUAME 09.05.2022 13:32
Ответ принят как подходящий

Основная причина FileNotFoundError заключается в том, что он не может найти файл с пустым строковым путем, который он никогда не найдет.

Я подробно расскажу о том, что объяснил @Sagitario. os.path.exists(filename) используется для проверки правильности и существования filename:

import os

if os.path.exists(filename):
    do_something() # like trying to open a file in this condition.
else:
    print(f"{filename} not found, please select other path")

Тем не менее, если ваш путь пуст, он обязательно перейдет в состояние else. Вместо этого вы можете проверить ввод пути, что он не пуст и существует.

Кроме того, здесь может помочь блок try-except. Но вам также необходимо решить основную проблему пустого пути к файлу где-то в вашем коде, используя приведенное выше условие if для проверки пути к файлу.

try:
    filename = filedialog.askopenfilename(initialdir = "/", title = "Select file to convert")
    # ...  the rest of your code relating the file opening ...
except FileNotFoundError:
    print(f"{filename} not found, please select other path")

Другие вопросы по теме

Внедрение Computer Vison на AutoML для классификации слабоумия с использованием изображений МРТ в формате файла .NII
Добавить пустую строку в фрейм данных, когда записи столбца повторяются
Как отсортировать numpy.recarray на основе поля даты и времени
Как мы можем выбрать случайное шестнадцатеричное значение из заданного шестнадцатеричного диапазона в python
Я хочу проверить элементы в списке на наличие целых чисел и вернуть целые числа каждого элемента в списке, как это? ожидаемый результат: ['2', '12'] как это сделать?
Уменьшить фрейм данных pandas без временных рядов
Не удается добавить в список в модуле curses?
Программа для поворота списка чисел до тех пор, пока все числа не вернутся в исходное положение
Преобразование определенной отметки времени часы:минуты:секунды из журнала и превращение ее только в секунды
'set' не работает для получения уникальных значений в столбце списков в пандах