• python自动化办公--协助财务自动发送工资条


    1、申请163账号,开通客户端stmp协议获得登录密码如:“VYCSWZBGIWMQVNGG”

    2、代码如下:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    from xpinyin import Pinyin
    import datetime as dt
    import pandas as pd
    import xlrd
    import os
    
    def loginmail(name,content):
        p = Pinyin()
        # 第三方 SMTP 服务
        mail_host = "smtp.163.com"  # 设置服务器
        mail_user = "zhangMingMingmj@163.com"  # 用户名
        mail_pass = "VYCSWZBGIWMQVNGG"  # 口令
        port = 465
        sender=mail_user    #用户名
        receivers =p.get_pinyin(name, '')+'@qq.com'
        body = content 
        # 设置邮件正文,这里是支持HTML的
        msg = MIMEText(body, 'html') 
        # 设置正文为符合邮件格式的HTML内容
        msg['subject'] =  '{}年{}月份工资条'.format(dt.datetime.now().year, dt.datetime.now().month-1) 
        # 设置邮件标题
        msg['from'] = sender  
        # 设置发送人
        msg['to'] = receivers  
    
        try:
            #ssl
            smtpObj = smtplib.SMTP_SSL(mail_host, port)
            smtpObj.login(mail_user, mail_pass)
            smtpObj.sendmail(sender, receivers, msg.as_string())
            print("邮件发送成功"+receivers)
        except smtplib.SMTPException:
            print("Error: 发送失败"+receivers)
    
    def main():
        print("准备发送")
        excel_name = input("请输入需要执行的excel文件路径:")
        if os.path.isfile(excel_name):
            sheet=pd.read_excel(excel_name)
            for row in sheet.iloc:
                df=pd.DataFrame(row)
                loginmail(row["姓名"],df.to_html())
        else:
            print("找不到此目录下的"+excel_name)
    
        os.system('pause')
    
    if __name__ == '__main__':
        main()

    需要安装

    1、pip install xpinyin 将名字装换成拼音,然后根据拼音获取固定格式的邮箱地址

    2、pip install pandas  将excel数据读入到数据操作集中

    3、pip install xlrd  读取excel

    3、打包成exe

    1、安装 pip install pyinstaller

    2、执行 pyinstaller xxx.py 等待生成exe

    3、双击exe,如果报错缺少库则将缺少的库的文件夹拷贝至exe同目录

    4、可以在cmd 里面执行exe -d 获取失败信息

    4、excel 文件格式

     5、值得注意的是打包的虚拟环境的选择,电脑有多个python环境会在安装库的时候提示已经存在另外一个地方了,后期打包好后手动去相应的地方拷贝即可

     6、正常环境下面打包出的exe会包含很多当前程序用不上的库所以会很大,我们可以在anaconda里面新建一个当前程序的虚拟环境,切换到当前虚拟环境  conda activate myvirenv然后在虚拟环境中安装需要的库再打包就只有几十兆了。

  • 相关阅读:
    uniq 只能相邻行去重
    uniq 只能相邻行去重
    uniq 只能相邻行去重
    KVO(1)
    KVO(1)
    KVO(1)
    KVO(1)
    解决 Retrofit 多 BaseUrl 及运行时动态改变 BaseUrl ?
    jquery 请求成功后
    事故现场:MySQL 中一个双引号的错位引发的血案
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/12862561.html
Copyright © 2020-2023  润新知