当前位置: 首页 > news >正文

python 生成chart 并以附件形式发送邮件

import requests
import json
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randn(5, 3)#生成chart
def generate_line_chart(data):df = pd.DataFrame(np.abs(data),index=['Mon', 'Tue', 'Wen', 'Thir', 'Fri'],columns=['A', 'B', 'C'])df.plot()plt.title("chart")plt.savefig('chart.png')plt.show()#发送邮件
def send_email(body,Subject):receiver = ["xxx@xxx.com",]msg = MIMEMultipart()recipients = receiverrecipients = ",".join(recipients)msg["To"] = recipientsmsg["From"] = 'xxx@xxx.com'msg["Subject"] = SubjectmsgText = MIMEText('%s' % (body), 'html')msg.attach(msgText) att = MIMEApplication(open('chart.png', 'rb').read(), 'utf-8')  # 读入需要发送的附件# 添加附加att.add_header('Content-Disposition', 'attachment', filename='chart.png')msg.attach(att)smtp = smtplib.SMTP()smtp.connect('internalmail.xxxx.com')  # SMTp Server Detailssmtp.sendmail(msg["From"], recipients.split(","), msg.as_string())smtp.quit()print('Send Email')

相关文章:

python 生成chart 并以附件形式发送邮件

import requests import json import pandas as pd import numpy as np import matplotlib.pyplot as plt data np.random.randn(5, 3)#生成chart def generate_line_chart(data):df pd.DataFrame(np.abs(data),index[Mon, Tue, Wen, Thir, Fri],columns[A, B, C])df.plot()…...

leetcode-035-搜索插入位置

题目及测试 package pid035; /*35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums …...

读书笔记--数据治理之法

继续延续上一篇文章,对数据治理之法进行学习。数据治理之法是战术层面的方法,是一套涵盖8项举措的数据治理实施方法论,包括梳理现状与确定目标、能力成熟度评估、治理路线图规划、保障体系建设、技术体系建设、治理策略执行与监控、绩效考核与…...

送了老弟一台 Linux 服务器,它又懵了!

大家好,我是鱼皮。 前两天我学编程的老弟小阿巴过生日,我问他想要什么礼物。 本来以为他会要什么游戏机、Q 币卡、鼠标键盘啥的,结果小阿巴说:我想要一台服务器。 鱼皮听了,不禁称赞道:真是个学编程的好苗…...

CentOS 7(2009) 升级 GCC 版本

1. 前言 CentOS 7 默认安装的 gcc 版本为 4.8,但是很多时候都会需要用到更高版本的 gcc 来编译源码,那么本文将会介绍如何在线升级 CentOS 的 gcc 版本。 2. 升级 GCC (1). 安装 centos-release-scl; [imaginemiraclecentos7 ~]$ sudo yum…...

java非静态代码块和静态代码块介绍

代码块 SE.10.0…02.28 非静态普通代码块:定义在方法内部的代码块,不用任何关键字修饰,又名构造代码块、实例代码块 静态代码块:用static修饰的代码块 非静态代码块 public class Test {public static void main(String[] args…...

Golang中接口类型详解与最佳实践(二)

之前的文章《Golang中的interface(接口)详解与最佳实践》详细介绍了接口类型的定义、使用方法和最佳实践。接口类型使得编写可扩展、可维护和可复用的高质量代码变得更加容易。 如何判断是否实现了某个接口? 还是使用之前文章的例子,例如声明了如下一个…...

ChatGPT 探讨内存屏障的意内存

一、与 ChatGPT 探讨内存屏障的意内存 轻松的氛围,跟 ChatGPT 从内存屏障问题一直扯到CAP原理 我: 2023/4/14 17:48:09 那我可以理解为{ shared_var 1; asm volatile ("sfence" ::: "memory"); asm volatile ("lfence" …...

P1039 [NOIP2003 提高组] 侦探推理

此题难度为:提高/省选- 作者为:CCF_NOI 题目描述 明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明…...

模拟电路学习笔记 - 概念与结论

真空二极管,电子管ENIAC发源地,基础方法二极管双极管三极管场向管学习特性,最终运放运方的目的是运用,射频,计算…放大电路大功率元器件和微元器件学习他们的特性分粒 集成设计的角度,不要仅仅分析设计的前…...

Linux驱动开发:I2C子系统

目录 1、I2C简介 1.1 两根线 1.2 信号 1.3 写时序 1.4 读时序 1.5 I2C速率 1.6 I2C驱动框架简介 2、I2C设备驱动 2.1 I2C相关API 2.1.1 i2c_driver 2.1.2 注册:i2c_add_driver 2.1.3 注销:i2c_del_driver 2.1.4 module_i2c_driver&#xff…...

[C++] 动态内存与智能指针

众所周知,C五大内存区:全局数据区(静态区)、代码区、栈区、堆区、常量区。 全局数据区(静态区):存放全局变量,静态数据和常量; 代码区:存放所有类成员函数和非成员函数代码,函数体的二进制代码。…...

多态的原理

有了虚函数,会在类的对象增加一个指针,该指针就是虚函数表指针_vfptr;虚表本质就是函数指针数组,虚表里面存放着该对象的虚函数的地址; 派生类继承有虚函数基类的对象模型 子类继承父类的虚表指针时,是对父类的虚表指针进行了拷…...

RK3588平台开发系列讲解(内存篇)Linux 伙伴系统数据结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、 页二、区三、内存节点沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 系统中,用来管理物理内存页面的伙伴系统,以及负责分配比页更小的内存对象的 SLAB 分配器了。 本篇将介绍伙伴系统相关数据结…...

Windows(MFC/C++)上进程间通讯的几种简单又实用的方法

前段时间,做了一个项目,涉及数据传输。项目实现方式有很多种,但不同的实现方式,对数据的传输方法不同,且各有优缺点。 下文就不同情况来如何选择数据传输(通讯)方式。 先说说需求,模块A获取测试数据&#…...

嘉兴桐乡会计考证培训-备考中级职称有必要报班吗?

备考中级会计职称有必要报班吗?其实,备考报班不能说是必需的,但听课学习确实是节省时间的一种方式,根据同学们的反馈,自学所花费的时间远远多于跟着老师学。上元教育就整理了一些学员报班之前走过的弯路 报班之前 在2…...

java元注解和自定义注解的区别

Java的元注解和自定义注解是两个不同的概念。 元注解是Java内置的一组用于修饰其他注解的注解,包括Retention、Target、Inherited和Documented。它们可以控制被修饰的注解的保留策略、目标范围、是否继承等属性,并且可以在编写自定义注解时使用。 Retent…...

技术到底是什么

背景 我发了朋友圈:做了个奇怪的梦,梦见被离职了,理由竟然是:你技术太菜了 我补充评论:我还没想明白怎么回事,就醒了。有点遗憾的是:想再努力反驳两句,结果没机会了… 很多人评论…...

什么CRM客户管理系统最好?

产业互联网背景下,企业数字化转型日渐深化。毋庸置疑,客户是企业的命脉,企业发展的关键便是以客户为中心,为客户创造价值,并不断实现企业的可持续性增长,而这也是每个企业永不落幕的主题。 一套优秀的CRM客…...

吴军《计算之魂》读后感

前言 断断续续,终于完成了这本书的第一次通读,记录下自己的一些想法。 先说一个小故事。前段时间家里买了一个小鱼缸,问我有没有办法让水自动循环,但不想用电。没有好的想法,去小某书上搜了下,好多案例教…...

C语言自学必看:最经典C语言书推荐

最经典的C语言书都在这了。 1、C Primer Plus 第6版 中文版C语言是鉴于满足程序员需求而被设计出来的,程序员借助C能够去访问硬件,能够操控内存里的位。C语言存有丰富的运算符,可使程序员得以简洁地表述自身意图。C语言不像Pascal那般严谨&am…...

Project Quay故障排查指南:常见问题及解决方案

Project Quay故障排查指南:常见问题及解决方案 【免费下载链接】quay Build, Store, and Distribute your Applications and Containers 项目地址: https://gitcode.com/gh_mirrors/quay/quay Project Quay是一款强大的容器镜像仓库管理工具,用于…...

瑞芯微Linux驱动工程师面试技术要点解析

1. 瑞芯微Linux驱动工程师面试全解析 作为一名在嵌入式Linux领域摸爬滚打多年的老司机,今天想和大家分享一份瑞芯微社招Linux驱动工程师的真实面经。不同于网上那些泛泛而谈的面试技巧,这份面经完全基于实际项目经验展开,可以说是"写什么…...

针对波动计算复杂性的吸收边界条件(PML 用于一般波动方程)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

OAK-D-S2/FFC系列深度校准实战:从原理到提升精度的几个关键技巧

OAK-D-S2/FFC系列深度校准实战:从原理到提升精度的几个关键技巧 深度相机校准是计算机视觉领域的一项基础但至关重要的技术。对于OAK-D-S2和FFC系列这样的高性能设备,校准质量直接决定了深度图的精度和可靠性。本文将带您深入理解校准背后的数学原理&am…...

智能应急灯V16:多场景照明解决方案

目录 一、方案概述 二、硬件方案设计 2.1 硬件整体架构 2.2 核心模块选型与设计 2.2.1 主控模块(核心单元) 2.2.2 电源管理模块(供电核心) 2.2.3 照明驱动模块 2.2.4 状态监测模块 2.2.5 通信模块(可选&#…...

OpenClaw v2026.4.2 深度解读:插件边界继续外移,Task Flow 真正走向可持久化运维

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...

DFX测试与专项测试:非功能性测试的深度解析与实践指南

1. DFX测试:产品全生命周期的质量守护者 第一次接触DFX测试这个概念时,我也被这个缩写搞懵了。后来在实际项目中才发现,这其实就是把质量保障前置到设计阶段的绝佳实践。DFX中的"X"就像是个万能变量,可以代入产品生命周…...

记录生活中的一件小事(佚名整理)

(转发需官方授权)记录生活中的一件小事(佚名整理)(佚名整理)记录生活中的一件小事,如果喊错了那才是麻烦事情的开始:曾经有一个人家里有两个姐姐,这个人上高中的时候和两…...

终极音乐解析方案:music-api如何免费打通四大平台音频资源壁垒

终极音乐解析方案:music-api如何免费打通四大平台音频资源壁垒 【免费下载链接】music-api 各大音乐平台的歌曲播放地址获取接口,包含网易云音乐,qq音乐,酷狗音乐等平台 项目地址: https://gitcode.com/gh_mirrors/mu/music-api…...