Я пытаюсь использовать iglob вместо glob, чтобы получить список файлов .txt. Если файлов .txt не существует, glob не возвращает никаких ошибок, но iglob делает.Обработать ошибку iglob, когда путь к поиску не существует
Код:
def iGlobLatest():
dir_list = glob.iglob('*.txt')
print dir_list.next()
если нет .txt файлов нет, я получаю это:
Traceback (самый последний вызов последнего):
Файл «T: \ прод \ offlineValidation \ Scripts \ goofin.py», строка 98, в iGlobLatest()
Файл "T: \ прод \ offlineValidation \ сценарии \ goofin.py", строка 88, в iGlobLatest печати dir_list.next()
StopIteration
Если я использую try/except, я могу избежать ошибки, но это единственный способ? Другие предложения по проверке существования файлов .txt связаны с использованием glob, но поскольку я пытаюсь использовать iglob вместо glob ....
Я думаю, что его также хорошо особо отметить, что iglob не вызов, вызывающий исключение, как указано в op. Он не отвечает иначе, чем вызов glob рядом с типом возврата. Его вызов возвращаемого типа (генератора), который вызывает исключение, так же, как если бы вы пытались сказать 'l = glob ('foo'); l [0] ', если glob не вернул никаких результатов. – jdi
Спасибо за информацию. Я не знал, что вы также можете пройти через итератор со следующим (итератором). И это также объясняет, почему я видел исключение, когда использовал iglob() так, как я сделал против glob(). – itchmyback
@itchmyback: 'next (iterator)' делает то же самое, что и 'iterator.next()'. Последняя форма не позволяет предоставить значение по умолчанию, если итератор исчерпан. –