Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Simple mbox parser to csv in Python
import mailbox
import csv
writer = csv.writer(open("mbox-output.csv", "wb"))
for message in mailbox.mbox('file.mbox/mbox'):
writer.writerow([message['message-id'], message['subject'], message['from']])
@GinaZhai

This comment has been minimized.

Copy link

GinaZhai commented May 22, 2018

hi, I want to know the version of your python, Thanks

@TheDavidJohnson

This comment has been minimized.

Copy link

TheDavidJohnson commented Oct 1, 2019

Thanks for posting this!

Quick note about using this with Python 3.6.8 (on Ubuntu 18.04). I got an error trying to write to the .csv file:

TypeError: a bytes-like object is required, not 'str'

By using the w option instead of the wb option, I was able to get it to work properly. Since this is a text file, I think we don't want to open it as binary. Just leaving this here in case it helps someone else.

So the writer = line ended up looking like this for me:

writer = csv.writer(open("mbox-output.csv", "w"))

Thanks again for sharing this snippet!

@davidpelayo

This comment has been minimized.

Copy link
Owner Author

davidpelayo commented Oct 1, 2019

@GinaZhai this was 4 years ago. I can't remember; but I'd bet it was Python 2.x. Does it make sense?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.