python把文件中的邮箱分类 保存到相应的文件里面(测试数据100W数据时间10秒)
#coding:utf-8
import time
import linecache
def readfile(file):
#读取数据
list_dict = {}
file_data = [ x.replace('\n','') for x in linecache.getlines(file) if '@' in x ]
#把后缀名组成字典中的keys,按照要求把文件中的数据加入到相应的keys里面
for x in file_data:
keys = x.split('@')[1]
list_dict[keys] = []
map(lambda x:list_dict[x.split('@')[1]].append(x),file_data)
return list_dict
def save_file(list_dict):
#把字典保存成文件
for keys,values in list_dict.iteritems():
if keys != '':
save_file = r'c:\file\%s.txt' % keys.replace('.','_')
with open(save_file,'w') as wb:
wb.write('\n'.join(values))
if __name__ == '__main__':
start = time.time()
save_file(readfile(r'c:\111.txt'))
print time.time() - start