|
0 / 0 / 0
Регистрация: 06.09.2018
Сообщений: 24
|
||||||
Обработка ошибки FileNotFoundError06.09.2018, 14:16. Показов 7627. Ответов 6
Метки нет (Все метки)
Добрый день!
Необходимо произвести вводов имени файла, если файл с таким именем не найден (возникает ошибка FileNotFoundError). Необходим рабочий кусок кода для возможности повторного введения имени файла (без ограничений количества попыток). Мой код ограничен по количеству попыток ввода (в данном примере всего две попытки):
0
|
||||||
| 06.09.2018, 14:16 | |
|
Ответы с готовыми решениями:
6
При повторном появлении ошибки обработка ошибки не срабатывает FileNotFoundError buildozer FileNotFoundError: |
|
Диванный эксперт
|
||||||
| 06.09.2018, 14:50 | ||||||
|
как то так
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.09.2018
Сообщений: 24
|
|
| 06.09.2018, 16:55 [ТС] | |
|
Спасибо за ответ!
Я так понимаю в Вашей версии необходимо указывать полный путь к файлу, а также теперь необходимо указывать расширение файла (относительный путь не работает). Но, тем не менее, вылезает другая ошибка: Traceback (most recent call last): File "D:\Python\поиск слова в файле.py", line 24, in <module> print(name) NameError: name 'name' is not defined”. И еще мне не очень понятен код. Не могли бы Вы немного пояснить его. Спасибо!
0
|
|
|
Диванный эксперт
|
|||||||||
| 06.09.2018, 19:22 | |||||||||
|
да, расширение нужно указывать(но вы это можете поправить, немного изменив функцию get_file_name)name не объявлена в текущей области видимости.Вам нужно почитать про функции, модули и области видимости.
1
|
|||||||||
|
0 / 0 / 0
Регистрация: 06.09.2018
Сообщений: 24
|
||||||
| 07.09.2018, 15:48 [ТС] | ||||||
|
Спасибо!
Вас не затруднит ответить на несколько моих вопросов? 1. Программа работает корректно и без конструкции «if __name__ == "__main__":» Как я понял, это конструкция применяется, если проект состоит из двух файлов. Первый играет роль точки входа приложения, например, в нем происходит отрисовка графики и работа с пользовательским интерфейсом. А второй содержит логику — набор функций, которые вызываются из графики. Первый производит импорт второго. У нас вроде не тот случай. Или может это сделано для того, чтобы запретить исполнять этот файл, если его хотят импортировать и использовать из другого модуля. Т.е. в таком случае код будет исполняться только при условии, что данный файл запущен как самостоятельная программа? 2. Что происходит в: stdout.write(message) stdout.flush() (Программа работает и без этих конструкций). 3. Почему нельзя записать вместо конструкции « line = stdin.readline()» конструкцию «line = str (input (message))»? 4. Почему необходимо удалить из полученной (line) строки \n - переход на следующую строку (line = line.rstrip('\n'))? 5. Цикл «while True:» - как я понял, навечно True при любых обстоятельствах и это обеспечивает требуемый результат? Я экспериментировал с Вашим кодом для того, чтобы лучше в нем разобраться: Вот измененный код с таким же результатом работы программы:
Большое спасибо! P.S. Как в комментариях на форуме с деталь подсветку синтаксиса кода (как у Вас)?
0
|
||||||
|
Диванный эксперт
|
|||||||
| 09.09.2018, 18:38 | |||||||
Сообщение было отмечено Sador01 как решение
РешениеЯ добавил эту проверку, чтобы была возможность использовать функции из этого файла в других программах. stdout - это файл, ассоциированный с выводом в консольТо есть это печать строки input зависит от версии Python:в 2.x ввод прогоняется через функцию eval, что приводит к попытке вычисления введенного выраженияв 3.x оно просто считывает строку. Получается, что чтение из stdin(файла ввода) через readline более универсальный способОн повторяется, пока пользователь не введет подходящее значение Для выхода из него использован оператор returnМожно было бы использовать break, если были нужны какие то дополнительные действияДля кода на Python используйте "тэг"[PYTHON][/PYTHON]
1
|
|||||||
|
0 / 0 / 0
Регистрация: 06.09.2018
Сообщений: 24
|
|
| 10.09.2018, 15:34 [ТС] | |
|
Спасибо!
0
|
|
| 10.09.2018, 15:34 | |
|
Помогаю со студенческими работами здесь
7
FileNotFoundError: Could not find module Global name FileNotFoundError шы not defined
FileNotFoundError: [Errno 2] No such file or directory: 'welcome.webp' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|