@@ -10,19 +10,28 @@ And I will check the data order to place the latest data in front, and long time
10
10
If the already exist data is ordered, I will only add new data to the file,
11
11
if not, I will add new data and reorder all the data and write into a new file.
12
12
13
+ test xxx.txt in same dir
14
+ 20161010 1.21444
15
+ 20161002 1.41444
16
+ 20161005 1.31444
17
+ 20161003 1.81444
18
+ 20161007 1.51444
13
19
"""
14
20
15
21
def TransDataToDict(file_handle):
16
22
from collections import OrderedDict
23
+ import decimal
17
24
raw_data = OrderedDict()
18
25
line_num = 0
19
26
for line in file_handle:
20
27
try:
21
28
[key,value] = line.split()
22
29
except ValueError:
23
30
return ("Please check line %0d, the data format may be not correct!" % (line_num))
24
- raw_data[int(key)] = ("%.4f" % float(value))
31
+ # raw_data[int(key)] = ("%.4f" % float(value)) # string not float type
32
+ raw_data[int(key)] = decimal.Decimal("%.4f" % float(value))
25
33
line_num = line_num + 1
34
+ file_handle.close()
26
35
return raw_data
27
36
28
37
def GetDataFromTxt(txt_str=""):
@@ -56,7 +65,14 @@ def OrderedDictReorder(ord_dict,index="key",rev=False):
56
65
from collections import OrderedDict
57
66
return OrderedDict(sorted(ord_dict.items(), key=lambda t:t[0] if index=="key" else t[1],reverse=rev))
58
67
59
-
68
+ def WriteNewDictDataToFile(ord_dict,txt_str=""):
69
+ from collections import OrderedDict
70
+ datafile = open(txt_str, "w")
71
+ for index in ord_dict:
72
+ datafile.write("%d\t%.4f\n" % (index, ord_dict[index]))
73
+ datafile.close()
74
+
75
+
60
76
if __name__ == "__main__":
61
77
raw_data = GetDataFromTxt("xxx.txt")
62
78
print(raw_data)
@@ -80,6 +96,11 @@ if __name__ == "__main__":
80
96
print(key_ordered_data_l)
81
97
print(val_ordered_data_s)
82
98
print(val_ordered_data_l)
99
+ WriteNewDictDataToFile(key_ordered_data_s,txt_str="key_ordered_data_s.txt")
100
+ WriteNewDictDataToFile(key_ordered_data_l,txt_str="key_ordered_data_l.txt")
101
+ WriteNewDictDataToFile(val_ordered_data_s,txt_str="val_ordered_data_s.txt")
102
+ WriteNewDictDataToFile(val_ordered_data_l,txt_str="val_ordered_data_l.txt")
103
+
83
104
84
105
#order_data = OrderedDict()
85
106
#order_data = OrderedDict(raw_data)
0 commit comments