@@ -46,10 +46,52 @@ def read_data_all():
4646 print i .split ('\t ' )
4747
4848
49+ @tools .time_log .time_log
50+ def create_dict ():
51+ """
52+ 创建大数据字典(作为模块使用)
53+ """
54+ write_file_name = 'config_dict/data_dict.py'
55+ with open (write_file_name , 'wb' ) as wf :
56+ # 写入开始头部定义
57+ wf .write ('DataDict = {\n ' )
58+ # 逐行读取文件
59+ read_file_name = 'static/csv/data.csv'
60+ with open (read_file_name ) as rf :
61+ for line in rf :
62+ line_list = line .rstrip ('\n ' ).split ('\t ' )
63+ row = '\t \' %s\' : \' %s\' ,\n ' % (line_list [0 ], line_list [1 ])
64+ print row
65+ # 写入单行数据
66+ wf .write (row )
67+ # 写入尾行
68+ wf .write ('}\n ' )
69+
70+
71+ @tools .time_log .time_log
72+ def load_dict ():
73+ """
74+ 加载大数据字典
75+ """
76+ from config_dict .data_dict import DataDict
77+ return DataDict
78+
79+
80+ @tools .time_log .time_log
81+ def get_dict_value (big_dict , key ):
82+ """
83+ 查找大数据字典的值
84+ """
85+ print big_dict .get (key )
86+
87+
4988if __name__ == '__main__' :
5089 # create_data()
5190 # read_data_line()
52- read_data_all ()
91+ # read_data_all()
92+ # create_dict()
93+ dict_tmp = load_dict ()
94+ get_dict_value (dict_tmp , '1550' )
5395
5496
5597"""
@@ -76,4 +118,19 @@ def read_data_all():
76118以上结果可以看出:
77119逐行读取文件比一次性加载文件节约内存,适合处理大数据的场景
78120一次性加载文件的方式适合数据量不大(占用内存可以忽略),但对速度要求较高的场景
121+ """
122+
123+ """
124+ zhanghe@ubuntu:~/code/python$ du -h config_dict/data_dict.py
125+ 18M config_dict/data_dict.py
126+
127+ 方法load_dict开始时间:Fri Aug 14 00:25:42 2015
128+ 方法load_dict结束时间:Fri Aug 14 00:25:43 2015
129+ 方法load_dict运行时间:0.85S
130+ 方法get_dict_value开始时间:Fri Aug 14 00:25:43 2015
131+ 153
132+ 方法get_dict_value结束时间:Fri Aug 14 00:25:43 2015
133+ 方法get_dict_value运行时间:0.00S
134+
135+ 可以看出将大字典作为模块导入,效率是最快的。
79136"""
0 commit comments