13.3.2.3 从Maildir邮箱删除消息
要从一个Maildir邮箱删除已有的消息,可以将消息的键传递到remove()或者使用del。
import mailbox
import os
mbox = mailbox.Maildir('Example')
mbox.lock()
try:
to_remove = []
for key,msg in mbox.iteritems():
if '2' in msg['subject']:
print('Removing:',key)
to_remove.append(key)
for key in to_remove:
mbox.remove(key)
finally:
mbox.flush()
mbox.close()
for dirname,subdirs,files in os.walk('Example'):
print(dirname)
print(' Directories:',subdirs)
for name in files:
fullname = os.path.join(dirname,name)
print('\n***',fullname)
print(open(fullname).read())
print('*' * 20)
没有办法计算一个消息的键,所以应当使用items()或iteritems()从邮箱同时获取键和消息对象。