-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
81 lines (72 loc) · 2.54 KB
/
main.py
File metadata and controls
81 lines (72 loc) · 2.54 KB
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
from try_parse.utils import ParseUtils
def readFromCsv():
"""
read csv file. and return header table data
:return: header and table data
"""
io = open('values.csv', 'r', encoding='UTF-8')
lines = io.readlines()
io.close()
header = str(lines[0]).split(',')
tables = list(lines[1:])
# print(f'header: {header}')
# print(f'tables: {tables}')
return header, tables
if __name__ == '__main__':
header, tables = readFromCsv()
filtered = {}
# date = datetime.date.fromisoformat('2015-7-18')
# print(f'date: {date}')
for row in tables:
cells = row.split(',')
name = str(cells[0])
dateStatus, date = ParseUtils.try_parse_date(cells[1], format='%Y-%m-%d')
valueStatus, value = ParseUtils.try_parse_float(cells[3])
# print(f'name: {name} date: {date if dateStatus else None} value: {value if valueStatus else None}')
if dateStatus and valueStatus:
# if date or value is invalid, just skip the row
if filtered.__contains__(name):
item = filtered[name]
firstDate = item['first']['date']
lastDate = item['last']['date']
if date < firstDate:
item['first'] = {
'date': date,
'value': value
}
if date > lastDate:
item['last'] = {
'date': date,
'value': value
}
else:
filtered[name] = {
'first': {
'date': date,
'value': value
},
'last': {
'date': date,
'value': value
}
}
# print(f'filtered: {filtered}')
result = None
for key in filtered.keys():
item = filtered[key]
# print(f"name: {key} last: {item['last']['value']} first: {item['first']['value']}")
if result:
value = item['last']['value'] - item['first']['value']
if value > result['value']:
result = {
'name': key,
'value': value
}
else:
value = item['last']['value'] - item['first']['value']
result = {
'name': key,
'value': value
}
if result:
print(f"公司: {result['name']}, 股价增值: {result['value']}")