Skip to content

Commit faad45e

Browse files
authored
Create data_get_store
1 parent d8289d0 commit faad45e

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

data_get_store

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
"""
2+
I need the data stored in txt file's format is
3+
4+
date value
5+
20161010 1.123
6+
20161011 1.211
7+
8+
I get the fund data from internet web resources, and write to txt file daily.
9+
And I will check the data order to place the latest data in front, and long time ago data in last.
10+
If the already exist data is ordered, I will only add new data to the file,
11+
if not, I will add new data and reorder all the data and write into a new file.
12+
13+
"""
14+
15+
def TransDataToDict(file_handle):
16+
from collections import OrderedDict
17+
raw_data = OrderedDict()
18+
line_num = 0
19+
for line in file_handle:
20+
try:
21+
[key,value] = line.split()
22+
except ValueError:
23+
return ("Please check line %0d, the data format may be not correct!" % (line_num))
24+
raw_data[int(key)] = ("%.4f" % float(value))
25+
line_num = line_num + 1
26+
return raw_data
27+
28+
def GetDataFromTxt(txt_str=""):
29+
raw_data = {}
30+
try:
31+
datafile = open(txt_str, "r")
32+
except FileNotFoundError:
33+
return ("Oops! the file %s does not exist, Pleade have a check!" % (txt_str))
34+
return TransDataToDict(datafile)
35+
36+
def GetIndexToList(ord_dict,index="key"):
37+
key_list = []
38+
for key in ord_dict:
39+
if index == "key":
40+
key_list.append(key)
41+
else:
42+
key_list.append(ord_dict[key])
43+
return key_list
44+
45+
def CompareTwoElements(x,y,order=0): # 0 means left smaller than right, 1 means opposite.
46+
return x>=y if order else x<=y
47+
48+
def JudgeOrderForArray(array,order=0): # order 0 means small to large, 1 means large to small
49+
i = 0
50+
last_index = len(array)-1
51+
while(i<last_index and CompareTwoElements(array[i],array[i+1],order)):
52+
i = i+1
53+
return i==last_index
54+
55+
def OrderedDictReorder(ord_dict,index="key",rev=False):
56+
from collections import OrderedDict
57+
return OrderedDict(sorted(ord_dict.items(), key=lambda t:t[0] if index=="key" else t[1],reverse=rev))
58+
59+
60+
if __name__ == "__main__":
61+
raw_data = GetDataFromTxt("xxx.txt")
62+
print(raw_data)
63+
key_list = GetIndexToList(raw_data,"key")
64+
val_list = GetIndexToList(raw_data,"val")
65+
print(key_list)
66+
print(val_list)
67+
key_order_or_not_s = JudgeOrderForArray(key_list)
68+
val_order_or_not_s = JudgeOrderForArray(val_list)
69+
key_order_or_not_l = JudgeOrderForArray(key_list,1)
70+
val_order_or_not_l = JudgeOrderForArray(val_list,1)
71+
print(key_order_or_not_s)
72+
print(val_order_or_not_s)
73+
print(key_order_or_not_l)
74+
print(val_order_or_not_l)
75+
key_ordered_data_s = OrderedDictReorder(raw_data,"key") # raw_data not changed
76+
key_ordered_data_l = OrderedDictReorder(raw_data,"key",True)
77+
val_ordered_data_s = OrderedDictReorder(raw_data,"val")
78+
val_ordered_data_l = OrderedDictReorder(raw_data,"val",True)
79+
print(key_ordered_data_s)
80+
print(key_ordered_data_l)
81+
print(val_ordered_data_s)
82+
print(val_ordered_data_l)
83+
84+
#order_data = OrderedDict()
85+
#order_data = OrderedDict(raw_data)
86+
87+
#print(GetDataFromTxt("xxx.txt"))
88+
#print(GetIndexToList(GetDataFromTxt("xxx.txt"),))
89+
#print(GetIndexToList(GetDataFromTxt("xxx.txt"),"val"))
90+
91+
#print(CompareTwoElements(1,1,0))
92+
#print(JudgeOrderForArray([4,3,3,2],1))

0 commit comments

Comments
 (0)