#python #windows #path
Вопрос:
Может ли кто-нибудь объяснить мне, как следующий результат возможен для этого фрагмента кода на Python:
for f in glob.glob(<dir-path> "\*"):
print(os.path.exists(f))
и результат:
True
True
True
True
False
False
False
True
False
False
False
True
Каталоги, с которыми я работаю, являются сетевыми папками, но эта проблема ранее не возникала в других каталогах. Я проверил, и нет никакой разницы в разрешениях между файлами в каталоге.
Есть какие-нибудь предложения?
Комментарии:
1. Первым шагом отладки было
print(os.path.exists(f), f)
бы выяснить, какие пути вызывают проблему.2. сначала вы должны отобразить
f
, чтобы увидеть, какой путь создает проблему, и вы должны проверить непосредственно в системе, существует ли этот путь. Возможно, это был временный файл, и он существовал воglob()
время работы, но был удален (системой) воexists()
время работы.3. Пути, которые создают проблему, являются обычными и не ведут к временным файлам. Есть еще какие-нибудь предложения по отладке?
4. Что делать, если вы используете
print(os.path.exists(f), os.path.exists('\\?\' f), f)
?