Python3.6读取excel指定数据并根据邮件列表群发

2023-11-19

 python3.6版本

python下载地址:https://www.python.org/getit/

excel

工作簿名:shuju.xlsx;;(会上传附件)

sheet表1名称:数据

sheet表2名称:邮箱 (请下载附件后填上正确的邮箱)

实现目的

该程序功能主要是提取excel信息并发邮件,不发整张表,只提取当天的信息,可作为各位参考!

废话也不多说,代码有注释

#!/usr/bin/python
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr,formataddr
import smtplib
import pandas as pd
import datetime
from email import encoders

io = 'shuju.xlsx'
global time #因为在其他函数有调用,设置一个全局变量

#当前时间获取函数
def getdatetime():
    riqi = datetime.datetime.strftime(datetime.datetime.now(),'%Y-%m-%d')
    nowtime = riqi[0:4]+'年'+riqi[5:7]+'月'+riqi[8:10]+'日'  #这里是切割重组为年月日的格式
    print(nowtime)
    return (nowtime)
time = getdatetime()

#发送邮件内容获取函数
'''
def readdata():
    data = pd.read_excel(io,sheet_name='数据',converters={'数据':str})
    datatest = data.loc[data['日期'] == time]
    datatest1 = datatest.reset_index(drop=True)
    print(datatest1.loc[0])
    data1 = str(datatest1.loc[0])
    return data1
'''
def readdata():
    data = pd.read_excel(io,sheet_name='数据',converters={'数据':str})
    indexnum = data[data.日期 == time].index.values
    num = indexnum[0]
    print(num)
    data1 = data[data.日期 == time].星期
    data2 = data[data.日期 == time].白班
    data3 = data[data.日期 == time].晚班
    data4 = data[data.日期 == time].备注
    #print(data)
    #print(data1)
    #print(data2)
    #print(data3)
    #print(data4)
    #print(type(data1))
    data5 = time+'--'+str(data1[num])+'\n'+'白班:'+str(data2[num])+'\n'+'晚班:'+str(data3[num])+'\n'+'备注:'+str(data4[num])
    #print(data5)
    #print(type(data1[indexnum]))
    return str(data5)

def _format_addr(s):
    name,addr = parseaddr(s)
    return formataddr((Header(name,'utf-8').encode(),addr))

#password是你开启SMTP时给你的邮箱授权码
def send(from_addr,password,to_addr,smtp_server,msg_text,subject,title):
    msg=MIMEText(msg_text,'plain','utf-8')
    msg['From'] = _format_addr(title+'<%s>'%from_addr)
    receivermessg = '000000@qq.com'
    msg['to'] = _format_addr('帅气的你<%s>' % receivermessg)  # 显示的收信人
    msg['Subject'] = Header(subject,'utf-8').encode()
    # 发送邮件
    server = smtplib.SMTP_SSL(smtp_server, 465)
    # 打印出和SMTP服务器交互的所有信息
    server.set_debuglevel(1)
    # 登录SMTP服务器
    server.login(from_addr, password)
    # sendmail():发送邮件,由于可以一次发给多个人,所以传入一个list邮件正文是一个str,as_string()把MIMEText对象变成str。
    server.sendmail(from_addr, to_addr, msg.as_string())
    print('邮件发送成功!')
    server.quit()

def reademill():# 获取邮箱数据
    emilldata = pd.read_excel(io,sheet_name='邮箱', converters={'邮箱': str})
    emilldata1 = emilldata.邮箱
    nrcows = emilldata1.shape[0]
    #print(nrcows)
    #print(emilldata)
    #print(emilldata1)
    for i  in range(1,nrcows): #循环获取邮箱数据
        emilldata1[i] = emilldata1[i-1]+","+emilldata1[i] #邮箱组成特定字符串
        #print(emilldata1[i])
    re_emilldate = str(emilldata1[i])
    #print(re_emilldate)
    return re_emilldate

if __name__=='__main__':
    msg_text_wr = readdata()
    print(readdata())
    from_addr = '136619@163.com'
    password = 'FQUZHPGHSYDHJA'
    #giuzjvwajmxyeahd
    print(reademill())
    to_str = reademill()
    print(to_str)
    to_addr =  to_str.split(',')
    smtp_server = 'smtp.163.com'
    send(from_addr,password,to_addr,smtp_server,msg_text_wr,'值班提醒邮件','值班助手')
    exit(0)

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3.6读取excel指定数据并根据邮件列表群发 的相关文章

  • 翠儿。让流永远运行

    我对 tweepy python 库比较陌生 我想确保我的流 python 脚本始终在远程服务器上运行 因此 如果有人能够分享如何实现这一目标的最佳实践 那就太好了 现在我正在这样做 if name main while True try
  • 将tensorflow 2.0 BatchDataset转换为numpy数组

    我有这个代码 train images test images tf keras datasets mnist load data train dataset tf data Dataset from tensor slices train
  • 没有任何元数据的 zip 文件

    我想找到一种简单的方法来压缩一堆文件 而无需任何文件元数据 例如时间戳 这zip命令似乎总是保留元数据 我没有找到禁用元数据的方法 我希望解决方案是一个命令或最多一个 python 脚本 谢谢 正如一些帖子已经指出的那样 zip 标头中的大
  • 在 Pandas 中按日期获取有效合约

    我在检测 pandas DataFrame 中的活动合约方面遇到了一些困难 假设每一行都是一个协商 对于每一行 我有两列 initial date 和 end date 我想知道的是按日期划分的活跃合约数量 到目前为止我做了一个非常低效的方
  • on_delete=models.PROTECT 和 on_delete=models.CASCADE 在 Django 模型上有什么作用?

    我对 Django 很熟悉 但最近注意到有一个on delete models CASCADE and on delete models PROTECT模型的选项 on delete models CASCADE and on delete
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • 即使使用 .loc[row_indexer,col_indexer] = value 时也会设置 WithCopyWarning

    这是我的代码中得到的行之一SettingWithCopyWarning value1 Total Population value1 Total Population replace to replace value 4 然后我将其更改为
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • 为什么我用 beautifulSoup 刮的时候有桌子,但没有 pandas

    尝试抓取条目页面转换为制表符分隔格式 主要拉出序列和 UniProt 登录号 当我跑步时 url www signalpeptide de index php sess m listspdb bacteria s details id 10
  • 将输入发送到 python 子进程而不等待结果

    我正在尝试为一段代码编写一些基本测试 该代码通常通过 stdin 无休止地接受输入 直到给出特定的退出命令 我想检查程序是否在给出一些输入字符串时崩溃 经过一段时间来考虑处理 但似乎无法弄清楚如何发送数据而不是陷入等待我不知道的输出关心 我
  • 张量流:注册 numpy bfloat16 扩展

    正如我所见 tensorflow 中有 bfloat16 的 numpy 扩展 https github com tensorflow tensorflow blob 24ffe9f729160a095a5cab8f592392018280
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • 如何将列表字典写入字符串而不是 CSV 文件?

    This 堆栈溢出问题 https stackoverflow com questions 37997085 how to write a dictionary of lists to a csv file将列表字典写入 CSV 文件的答案
  • 在 Python 模块中使用 InstaLoader

    我正在尝试使用 Instaloader 下载与主题标签相关的照片以进行图像分析 我在GitHub存储库中找到了一个全面的方法 如何在终端中执行它 但是 我需要将脚本集成到Python笔记本中 这是脚本 instaloader no vide

随机推荐

  • vcs -xprop的理解

    一 vcs xprop简介 https www synopsys com zh cn verification simulation vcs xprop html Verilog 和 VHDL 常用于数字设计建模 设计人员使用 RTL 构造
  • 如何在 swgger 中设置连接前后端的 API 接口

    在的网站大多都是前后端分离式的开发 前后端都衍生出了自己的框架 现在前后端交互的唯一方式就是 API 接口 曾经前后端交互都需要后端人员手动编写 API 接口文档 规定路径 请求方式 返回类型 这样效率很低 swagger 就是更好地书写
  • 基于Python和笛卡尔遗传规划(Cartesian Genetic Programming, CGP),对柔性车间调度问题FJSP求解

    前言 实习阶段在研究柔性车间调度 即 Flexible Job shop Scheduling Problem FJSP 的问题 公司的前辈已经使用了很多方法实现了对复杂的实际调度问题进行求解 我做的部分主要是在公开数据集上 尝试用遗传规划
  • uniapp 路由不要显示#

    在Uniapp中 路由默认使用的是hash模式 即在URL中添加 符号 如果你不想在URL中显示 可以切换为使用history模式 要在Uniapp中使用history模式 可以按照以下步骤进行操作 打开manifest json文件 在
  • 2022深圳福田区专精特新小巨人企业申报条件,补贴50万

    深圳福田区专精特新小巨人企业申报后 可获得50万补贴 需要申报认证及补贴的企业 在中华人民共和国境内工商注册登记 连续经营3年以上并具有独立法人资格的中小企业 想要申报的企业 都需要在了解规则条件的基础上才能提前做好准备 用华夏泰科进行便捷
  • 华为OD机试 - 统计射击比赛成绩(Java)

    题目描述 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高3个分数之和进行降序排名 输出降序排名后的选手ID序列 条件如下 一个选手可以有多个射击成绩的分数 且次序不固定 如果一个选手成绩少于3个 则认为选手的
  • C语言中 error: expected ‘;‘, ‘,‘ or ‘)‘ before ‘&‘ token 解决方法

    问题描述 近期发现包括我在内的很多同学在用DEV C 编译的时候会出现 error expected or before token 这个如下图的错误提示 很多同学很不解 和其他人比较代码后 明明就没有错呀 为什么呢 经过查找相关资料 其实
  • 机器学习——高斯过程

    高斯过程 所谓高斯 即高斯分布 所谓过程 即随机过程 高斯分布 一维高斯 p x N
  • MATLAB代码:考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型

    MATLAB代码 考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型 关键词 碳捕集 综合能源系统 电转气P2G 热电联产 低碳调度 参考文档 Modeling and Optimization of Combined Heat an
  • 魅族7.0系统手机最简单激活Xposed框架的流程

    对于喜欢研究手机的朋友而言 常常会使用到XPOSED框架及种类繁多功能极强的模块 对于5 0以下的系统版本 只要手机能获得root权限 安装和激活XPOSED框架是异常轻易的 但随着系统版本的不断迭代 5 0以后的系统 激活XPOSED框架
  • Xray和burpsuite联动被动扫描

    想挖点src又没啥思路 试着挂个自动漏扫工具xray 又看到能与burp联动实现自动扫就想尝试一下 搞好进自己网站测试了一下 的确是爬虫式漏扫 访问量属实大 不过自己设置设置还是一个很不错的工具 安装配置 是在ddosi org这里找的破解
  • 经典问题(20)天平与砝码问题

    题目 如果有砝码序列 1 3 9 27 81 243 729 我们至少可以称量1000以内的所有整数重量 比如 5 9 3 1 即 9 放入对侧盘 3 1 放入同侧盘 再比如 19 27 9 1 编程的目标是 给定一个重量 求 天平称重时
  • Acwing-4729. 解密

    如果dt小于0 或者r不是整数 或者m r是奇数的话 m 2 与 m 2 的奇偶性相同 那么方程无解 输出NO include
  • 三进制计算机基本原理,三进制(三进制计算机)

    如题 越详细越好 最好再举个例子 十进制转任何进制都是采用整数除n取余倒序排列 小数乘n取整顺序排列的方法 比如 32 12 转 三进制 整数部分 32除以3商10余210除以3商3余13除以3商1余01除以3商 十进制数换三进制短除三 三
  • java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查)

    学生信息管理1 0 涉及的知识点 三层架构理论 简单理解三层架构就是 上层调用下层 下层为上层提供服务 最上层 视图层 由jsp servlet组成 中间层 服务层 组装数据访问层所实现的功能 最下层 数据访问层 实现单一得某项功能 为服务
  • CSS常用样式

    目录 引入CSS样式的三种方式 内联 行内 样式 内部样式表 外部样式表 基础选择器 标签选择器 标签 各种样式 类选择器 类名 各种样式 id选择器 id号 各种样式 字体样式 font 文本样式 鼠标样式 cursor 背景样式 bac
  • MySql保留两位小数

    1 格式化小数函数format x d format 函数会对小数部分进行四舍五入操作 整数部分从右向左每3位一个逗号进行格式化输出 三位小数 整数 不足两位的情况 0 001的情况 2 随机函数ROUND X D 三位小数 整数 不足两位
  • Python03-pytest框架

    Python03 pytest测试框架 pytest简介 支持参数化可以细分控制测试用例 支持简单的单元测试和复杂的功能测试 还支持selenium appium等自动化测试 接口自动化测试 支持第三方插件 可以自定义扩展 pytestht
  • Centos7下安装Zookeeper

    一 配置java环境 1 安装JDK yum install y java 1 8 0 openjdk 2 查看版本 root zookeeper java version openjdk version 1 8 0 362 OpenJDK
  • Python3.6读取excel指定数据并根据邮件列表群发

    python3 6版本 python下载地址 https www python org getit excel 工作簿名 shuju xlsx 会上传附件 sheet表1名称 数据 sheet表2名称 邮箱 请下载附件后填上正确的邮箱 实现