-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathparseDates.py
89 lines (70 loc) · 2.11 KB
/
parseDates.py
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import mailbox
import csv
def parseDate(dateMessage):
if dateMessage is None:
return "None", "None", "None", "None"
fullDate = dateMessage.split(",")
day = (fullDate[0]).lower()
# Update days
if day is None or len(day) < 1 or len(day) > 5 or day is "none":
day = "None"
# Grab appropriate date
if len(fullDate) > 1:
date = fullDate[1].split(' +')
if len(date) < 2:
date = fullDate[1].split(' -')
else:
date = fullDate[0]
if date is None:
if len(fullDate) < 2:
date = "None"
else:
date = date.split("-")[0]
date = date[0]
if date[0].find(":") is not -1:
date = date[:-9]
date = date[1:12]
date = date.replace(" ", "-")
date = date.replace(":", "")
if date.find("-") is 0:
date = date[1:len(date)]
# Replaces year
date = date.replace("2009", "09")
date = date.replace("2010", "10")
date = date.replace("2011", "11")
date = date.replace("2012", "12")
date = date.replace("2013", "13")
date = date.replace("2014", "14")
date = date.replace("2015", "15")
if date.find('-') is 1:
date = "0" + date[:-1]
splitDate = date.split('-')
month = "None"
year = "None"
if len(splitDate) > 2:
month = splitDate[1]
year = splitDate[2]
return day, month, year, date
''' ___MAIN___ '''
writer = csv.writer(open("mailDates.csv", "wb"))
dayWriter = csv.writer(open("mailDays.csv", "wb"))
dates = dict()
days = dict()
for message in mailbox.mbox('mail.mbox'):
day, month, year, date = parseDate(message['date'])
# Count for each day
if day not in days:
days[day] = 1
else:
days[day] += 1
# Count for each date
if date not in dates:
dates[date] = 1
else:
dates[date] += 1
writer.writerow(["Date", "Count"])
for date in dates:
writer.writerow([date, dates[date]])
dayWriter.writerow(["Day", "Count"])
for day in days:
dayWriter.writerow([day, days[day]])