日常工作中有时候会处理一些邮箱,而领导发给你处理的邮箱类型有各种各样,这时候就需要自己处理分类了,如果邮箱少还可以自己人工处理,但是邮箱太多的话,处理起来就会非常麻烦,所以我就通过写python脚本实现自动处理
以下是脚本内容,在python3的环境下运行

#-*- coding: UTF-8 -*-
import os,time
import collections
import win32com.client
import re,sys

#author: yichen


yichen = win32com.client.Dispatch("SAPI.SPVOICE")
qianyan = "使用本脚本,需要先在桌面创建一个以mail为名字的文件夹,然后把需要处理的邮箱放入到mail目录下,然后执行本脚本就可以了"
qianyan1 = "#注意,本脚本放在任何地方都可以执行,但是不能放在mail目录下。 需要整理的邮箱内容第一行不能为空"
print("    ")
print("     ")
print(qianyan)
print("主要功能有一下几点:     ")
time.sleep(1)
print("1, 生成以邮件类型为命名的新文件如qq邮箱,163邮箱等")
time.sleep(1)
print("2, 新生成的邮箱都是正确格式的,一些不是正常的邮箱或格式错误的不会出现在新文件里")
time.sleep(1)
print("3, 可以节省人为邮箱类型分类所花费的大量时间")
time.sleep(1)
print("4, mail目录里面可以放入多个要整理的邮箱文件,每整理完一个文件会提示一次")
print(qianyan1)
hui = input("敲回车继续: ")
print(hui)
print("      ")
print("如果你已经在桌面创建好mail文件夹,且已经准备好需要整理的邮箱,请输入yes,继续执行,否则输入no退出")
shu = input("请输入yes/no:\n  ")
if shu == "yes":
    yichen.Speak("开始整理邮箱")
elif shu == "no" :
    print("开始退出脚本")
    sys.exit()
else:
    yichen.Speak("请正确输入yes或no")
    time.sleep(1)
    print("本程序退出了")
    sys.exit()
def work(path):
    #保存的路径
    resPath = r"C:\Users\Administrator\Desktop\mail\res"
    if not os.path.isdir(resPath):
        os.mkdir(resPath)
    #打开文件
    with open(path, "r") as f:
        while True:
            #[email protected] 文件的邮箱信息
            lineInfo = f.readline()
            if len(lineInfo) < 5:
                break
            mailStr = lineInfo
            #下面判断是不是邮箱类型
            mailtype = r"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
            if not re.findall(mailtype,lineInfo) :
                continue
            #print(mailStr)
            fileType =mailStr.split("@")[1].split(".")[0]
            #print(fileType)
            dirStr = os.path.join(resPath,fileType +"邮箱")
            if not os.path.exists(dirStr):
                #不存在,目录
                os.mkdir(dirStr)
            filePath = os.path.join(dirStr, fileType + ".txt")
            with open(filePath, "a") as fw:
                fw.write(mailStr)

def getAllDirQU(path):
    queue = collections.deque()
    #进队
    queue.append(path)

    while len(queue) != 0:
        #出队数据
        dirPath = queue.popleft()
        #找出所有的文件
        filesList = os.listdir(dirPath)
        for fileName in filesList:
            #绝对路径
            fileAbsPath = os.path.join(dirPath,fileName)
            
            if os.path.isdir(fileAbsPath):
                
                queue.append(fileAbsPath)
            else:
                #print("普通文件:" + fileName)
                #处理普通文件
                work(fileAbsPath)
                time.sleep(1)
                print("      ")
                print("邮箱分类完毕后会保存在桌面mail目录下的res文件里面")
                time.sleep(1)
                yichen.Speak("邮箱整理完毕,请查看邮箱")
        break
getAllDirQU(r"C:\Users\Administrator\Desktop\mail")

脚本在运行之前需要在桌面新建一个目录名为mail。然后把需要整理的邮箱文件放到mail目录下,

Last modification:May 13th, 2020 at 11:46 pm
如果觉得我的文章对你有用,请随意赞赏