Мне нужно проверить тысячи каталогов для двух видов файлов. Я ограничил индекс, или idx, до менее четырех, так как в этом диапазоне будут найдены два типа файлов, которые нужно найти: «jpg» и «.mb». Но мне нужно, чтобы оператор if требовал, чтобы эти два типа файлов находились в каталоге. Если заявление:Использование операторов «и» в if
if ('.jpg' in val) and ('thmb' in val):
работает только я получаю распечатку через другое утверждение, что данные отсутствуют, если это не так:
Data missing W:\\North2015\200\10 200001000031.jpg 0
Data missing W:\\North2015\200\10 200001000032.jpg 1
Data missing W:\\North2015\200\100 200014000001.jpg 0
Data missing W:\\North2015\200\100 200014000002.jpg 1
Data missing W:\\North2015\200\101 200014100081.jpg 2
Вот код ниже:
def missingFileSearch():
for folder in setFinder():
for idx,val in enumerate(os.listdir(folder)):
if idx < 4:
if ('.jpg' in val) and ('thmb' in val):
pass
else:
print'Data missing',folder,val,idx
Так что мне интересно, почему я получаю вывод через инструкцию else. Кроме того, эта строка кода повесила:
if val.endswith('.jpg') and ('thmb' in val):
print'Data is here!',folder,val,idx
Это в основном то, что мне нужно код, чтобы сделать.
'' 200001000031.jpg'' не содержит '' thmb''. Вы имели в виду ваше условие быть 'if ('.jpg' в val) или ('thmb' in val):' ('или' вместо' and')? –
Ну, я думаю, что если я использую 'или' вместо 'и', он будет удовлетворять условию, если какой-либо файл находится в каталоге, но не оба. –
@hollow_Victory: вы тестируете * каждое имя файла *, а не * все имена файлов *. –