I need to delete records in an MS Outlook .NK2 file if they contain a
specific email address.
This code has been inspired mainly by:
http://code.google.com/p/debunk2/wiki/fileformat.

import re

NUL='\x00'
sep1 = '\x04H\xfe\x13' # record separator
sep2 = '\x00\xdd\x01\x0fT\x02\x00\x00\x01'  # record separator
p = re.compile('@emaildomain', re.IGNORECASE)

props = open('nk2properties.txt', 'r')
lines = props.readlines()

infile  = lines[0].strip()
outfile = lines[1].strip()

props.close()

f = open(infile, 'rb')
filedata = f.read()
f.close()

out = open(outfile, 'wb')
for z in filedata.split(sep1):
    for y in z.split(sep2):
        split1 = [x.replace(NUL, '') for x in y.split(NUL*3)]
 for item in split1:
     m = p.search(item)
     if m:
         print m.group()
         out.write(item)

out.close()



nk2properties.txt contents:

Outlook.NK2
outputfile

I'm sure all matches are found. The trouble, it seems, is determining where
the records begin and end so I can delete them and keep them in a separate
file in case I have to reimport them later.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to