В дополнение к отличному ответу @Dimitry я добавлю замечание, которое может быть важно для вас: если вы начнете удалять из Предметов во время итерации, могут произойти странные вещи.Например, в моей системе следующий код Python:
for mail in folder.Items:
mail.Delete()
, а также
for index, mail in enumerate(folder.Items, 1):
folder.Remove(index)
, оба удаляют только половину элементов в folder
!Причина, по-видимому, заключается в том, что Items использует внутренний диапазон индексов для предоставления итератора, поэтому каждый раз, когда элемент удаляется, хвост списка смещается на один ...
Чтобы удалить все элементы в папкепопробуйте:
for i in range(len(folder.Items)):
folder.Remove(1)
Если вам нужно выполнить фильтрацию по определенному критерию, рассмотрите сначала сбор EntryID и затем удаление поиска по идентификатору:
ids = []
for i in range(len(folder.Items), 1):
if to_be_deleted(folder.Items[index]):
ids.append(index)
for id in ids:
outlook.GetEntryByID(id).Delete()
Я думаю, что производительность еще хуже, хотяс