结对-英文词频检测程序-开发过程
一、csv导出模块的编写:
当初先设计了csv部分, 过程参考了一些网络上的代码,使用内置csv包, 将字典类型构造为数组, 最后利用python的csv模块写入本地。当时代码的原型:
def foo_name(dict_profile):
with open(path_out, "w") as csvfile:
writer = csv.writer(csvfile)
for key in dict_profile:
writer.writerow([key, dict_profile[key]])
if __name__ == '__main__':
foo_name()
- 二、单词统计模块的编写:
原理是遍历数组, 将其中内容通过字典get()函数统计, 有key的值+1,没有key的值赋0。 当时代码的原型:
def count(word_list):
d = {}
for item in word_list:
d[item] = d.get(item, 0) + 1
return d
if __name__ == '__main__':
count()
- 三、结果展示模块的编写:
该模块调用上面统计模块返回的字典, 遍历字典, 构造字符串打印, 当时代码的原型:
def print_result(dict_name):
for k, count in sorted(dict_name.items(), key=lambda x: x[1], reverse=is_revese)[:max_show]:
print("{0:11}{1}".format(k, count))
if __name__ == '__main__':
print_result()
- 四、settings模块的编写:
重构阶段, 将代码写死部分, 换成可调用变量写入settings.py中, 编写注释。
# Author : gengwenhao
# 2017-09-06
SETTING_STR = {
'str_re': r"[\w]+|-|'", # 自定义正则, 现在是0-9a-zA-Z|-|'
'str_path': r'1.txt', # 文本路径
'str_path_out': r'result.csv', # 保存的路径
'is_reverse': True, # 是否排序显示
'max_show': 100, # 展示出来的记录量, 100条
}