os.path.exists возвращает false, но не вызывает исключение в блоке try / Кроме - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь проверить список входных каталогов и хочу, чтобы скрипт вызывал ошибки, если каталоги не существуют. Я не верю, что если-не будет работать здесь, так как если эти папки не существуют (с необходимыми входными файлами [у меня есть другая проверка для этого]), то сценарий не может быть запущен.

folder1 = "d:\\temp\\exists"
folder2 = "d:\\temp\\notexists"
list = [folder1, folder2]
list #gives ['d:\\temp\\exists', 'd:\\temp\\notexists']

for l in list:
    try:
        os.path.exists(l)
        print("{0} folder exists...".format(l))
    except FileNotFoundError:
        print("{0} folder does not exist!".format(l))

os.path.exists правильно определяет папку 2 как не существующую, но не вызывает исключение:

True
d:\temp\exists folder exists...
False
d:\temp\notexists folder exists...

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Если вы хотите, чтобы код остановился и выдал ошибку:

for l in list: 
    if os.path.exists(l): 
        print("{0} folder exists...".format(l))
   else:
      raise FileNotFoundError("{0} folder does not exist!".format(l))
0 голосов
/ 20 февраля 2020

if...else блок должен сделать трюк

folder1 = "d:\\temp\\exists"
folder2 = "d:\\temp\\notexists"
list = [folder1, folder2]
list #gives ['d:\\temp\\exists', 'd:\\temp\\notexists']

for l in list:
    if os.path.exists(l)
        print("{0} folder exists...".format(l))
    else:
        print("{0} folder does not exist!".format(l))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...