-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun.py
58 lines (50 loc) · 1.85 KB
/
run.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
import csv
import datetime
def read_csv_file(file_name):
data = []
with open(file_name, 'r') as file:
csv_reader = csv.DictReader(file)
for row in csv_reader:
data.append(row)
return data
def generate_html_elements(data):
sorted_data = sorted(data, key=lambda x: x['BirthDate'])
html_elements = []
for entry in sorted_data:
if entry['DeathDate'] == '':
entry['DeathDate'] = 'Unknown'
elif entry['DeathDate'] == 'alive':
entry['DeathDate'] = 'Present'
else:
entry['DeathDate'] = datetime.datetime.strptime(entry['DeathDate'], '%m/%d/%Y').strftime('%Y')
entry['BirthDate'] = datetime.datetime.strptime(entry['BirthDate'], '%m/%d/%Y').strftime('%Y')
if entry['DebutDate'] == '':
entry['DebutDate'] = 'Unknown'
if entry['LastFilmDate'] == '':
entry['LastFilmDate'] = 'Unknown'
if entry['Movies'] != '':
entry['Movies'] = "<p>Movies: " + entry['Movies'] + "</p>"
else:
entry['Movies'] = ''
html_element = f'''
<div class="entry">
<div class="title big">{entry['Name']}</div>
<div class="body">
<p>{entry['BirthDate']} - {entry['DeathDate']}</p>
<p>Debut: {entry['DebutDate']}</p>
<p>Last Film: {entry['LastFilmDate']}</p>
{entry['Movies']}
</div>
</div>'''
html_elements.append(html_element)
return html_elements
def write_html_file(html_elements, output_file):
with open(output_file, 'w') as file:
for element in html_elements:
file.write(element + '\n')
if __name__ == '__main__':
csv_file_name = 'actors.csv'
output_html_file = 'output.html'
csv_data = read_csv_file(csv_file_name)
html_elements = generate_html_elements(csv_data)
write_html_file(html_elements, output_html_file)