-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathformatter.py
37 lines (30 loc) · 1.42 KB
/
formatter.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
import csv
import time
from datetime import datetime
from dateutil.parser import parse
# Opens read / write
def clearLines():
with open('../data/raw.csv', 'rb') as infile, open('../data/manifest.csv', 'wt') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in reader:
if row[0] != "":
writer.writerow(row)
# Creates a string and writes to .txt
def formString():
with open('../data/manifest.csv', 'rb') as infile, open('../data/manifest.txt', 'wt') as outfile:
reader = csv.reader(infile)
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
for row in reader:
migrantFirstName = row[0].title()
migrantSurName = row[1].title()
migrantAge = row[2].replace("age", "aged")
migrantCountry = row[3].title()
migrantEmbark = row[4].title()
migrantDate = datetime.strptime(row[5], "%m/%d/%Y")
migrantDate = "{0:} {1:} {2:}".format(months[migrantDate.month - 1], migrantDate.day, migrantDate.year)
migrant = migrantFirstName + ' ' + migrantSurName + ', ' + migrantAge + ', from ' + migrantCountry + ', ' + 'arrived in New York on ' + migrantDate + ', having embarked from ' + migrantEmbark + '.\n'
outfile.write(migrant)
# Call functions
clearLines()
formString()