(小白记录)简易分离邮箱

最近再学习python,写了一个分离邮箱的小代码,在此记录一下。

功能描述:主要是打开一个txt文件,分离文件中qq邮箱和163邮箱,
并新建txt文件,将分离的数据分别写入txt文件中。

import os
import datetime
import collections

def mail(path,name1,name2):
    #两个新文件的路径
    name1path = path + '\\' + name1 + r'.txt'
    name2path = path + '\\' + name2 + r'.txt'
    #创建一个队列,用队列进行对目录的广度遍历
    queue=collections.deque()
    app=queue.append(path)
    #队列长度不为0就一直遍历
    while len(queue)!=0:
        # 获取一个目录
        mainPath = queue.popleft()
        # 获取目录下所有文件,list类型
        getAlldir=os.listdir(mainPath)
        # print(getAlldir)
        # print(type(getAlldir))
        #循环list
        for listName in getAlldir:
            # print(listName)
            #新路径是前路径+文件名
            newPath=os.path.join(mainPath,listName)
            #判断当新路径不是文件夹,才能执行文件操作
            if os.path.isdir(newPath) == False:
                # 判断文件是不是目标文件
                if listName=='date.txt':
                    # 对目标文件进行读取
                    with open(newPath,'r') as f:
                        allData=f.read()
                        # 截取目标文件中的邮箱
                        listallData=allData.splitlines()
                        # print(listallData,type(listallData))
                        # name1path = path + '\\'+name1 + r'.txt'
                        # name2path = path + '\\'+name2 + r'.txt'
                        #循环邮箱数据
                        for data in listallData:
                            dataStr=str(data)
                            # singleData=dataStr.find('qq')
                            # 判断字符串数据中是不是包含name1,包含就读取写入文件
                            if dataStr.find(name1) >0:
                            #首次会创建新文件
                                with open(name1path,'a+') as r:
                                    with open(name1path, 'r+') as q:
                                        if dataStr not in q.read():
                                            q.write(dataStr+'\n')
                                            q.flush()
                            # 判断字符串数据中是不是包含name2,包含就读取写入文件
                            if dataStr.find(name2)>0:
                                with open(name2path,'a+') as rw:
                                    with open(name2path, 'r+') as w:
                                        if dataStr not in w.read():
                                            w.write(dataStr+'\n')
                                            w.flush()
                        f.flush()
path=r'C:\Users\cuichuang1\Desktop\test'
mail(path,'qq','163')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值