How to delete letters automatically with imaplib?
Ben Finney
ben+python at benfinney.id.au
Wed Aug 6 05:14:34 EDT 2014
elearn <elearn2014 at gmail.com> writes:
> status, data= con.search(None, "ALL")
> print(len(data[0].split()))
> 48
> typ, data= con.search(None, 'Body', '"xxx at gmail.com"')
> >>> data
> [b'1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
> 32 33 34 35 36 37 44']
>
> len(data[0].split())
> 36
>
> How can i delete 48-36=12 letters?
Set operations are designed for this::
# Construct a set of all message numbers.
status, data = con.search(None, "ALL")
ids_of_all_messages = set(data[0].split())
# Construct a set of messages mentioning the address.
status, data = con.search(None, 'Body', '"xxx at gmail.com"')
ids_of_messages_containing_address = set(data[0].split())
# Get the messages to delete.
ids_of_messages_to_delete = (
ids_of_all_messages - ids_of_messages_containing_address)
--
\ “Too many pieces of music finish too long after the end.” —Igor |
`\ Stravinskey |
_o__) |
Ben Finney
More information about the Python-list
mailing list