小编也不知道大家能不能用的到,我只是把我学到的知识分享出来,有需要的可以看一下。python本身就是一个不断更新改进的语言,不存在抄袭,有需要就可以拿过来用,在用的过程中,你发现可以用另外一种方法把它实现,就可以把代码做进一步的优化,然后分享出来,这样python会变的越来越实用。今天心情不好,再分享一个小程序就结束!

邮箱分类存储

 1 #! /usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # __author__ = "Dylan"
 4 
 5 
 6 ''' 新建一个txt文件存储网络爬取的邮箱账号和密码,存储方式如下(具体问题具体分析,这里只是举个例子):
 7 data:
 8       账号                   密码
 9     laphae757878@163.com----198587
10     sgdjhgawue@126.com----198587
11     eiuuweyi34@qq.com----198587
12 res:
13     126.txt:
14         sgdjhgawue
15     163.txt:
16         laphae757878
17     qq.txt:
18         eiuuweyi34
19 '''
20 
21 
22 import os
23 import collections
24 
25 def work(path):
26     resPath = r"存放取出数据的路径"  # 如c:\python\res
27     with open(path, "r") as f:
28         while True:
29             lineInfo = f.readline()
30             if len(lineInfo) < 5:
31                 break
32             emailStr = lineInfo.split("----")[0]   # 邮箱@前的字段
33             fileType = emailStr.split("@")[1].split(".")[0]  # 邮箱类型的目录 如c:\python\res\163
34             dirStr = os.path.join(resPath, fileType)
35             if not os.path.exists(dirStr):
36                 os.mkdir(dirStr)  # 不存在,就创建这个目录
37             filePath = os.path.join(dirStr, fileType + ".txt") # 为每一个邮箱类型创建一个txt文件,然后把对应的邮箱写进去
38             with open(filePath, "w") as fw:
39                 fw.write(emailStr + "\n")
40 
41 def getAllDirQueue(path):
42     queue = collections.deque()
43     queue.append(path)
44     while len(queue) != 0:
45         dirPath = queue.popleft()
46         fileList = os.listdir(dirPath)
47         for fileName in fileList:
48             fileAbsPath = os.path.join(dirPath, fileName)
49             if os.path.isdir(fileAbsPath):
50                 queue.append(fileAbsPath)
51             else:
52                 work(fileAbsPath)  # 处理普通文件
53 
54 getAllDirQueue(r"数据路径")  # 如c:\python\data

 

版权声明:本文为ccmldl原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ccmldl/p/9539063.html