首页 文章 精选 留言 我的

精选列表

搜索[富文本组件],共10010篇文章
优秀的个人博客,低调大师

可以发送html文本的python脚本

获取阿里云和金山云云存储的方法在前两章文章里面已经有说过,那么现在就可以搭配一个邮件脚本,然后每天定时发送了。 假设我们的这个发送邮件脚本叫sendmail.py,由于我们这个邮件脚本是包含整个的html文件,所以我们这个sendmail.py需要获得阿里云OSS脚本的结果,然后把这个脚本结果传递给html。 整个脚本如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 #!/usr/bin/envpython #-*-coding:UTF-8-*- #Author:ChrisChan@2017-09-27 #这个脚本用于获取阿里云和金山云云存储的值,并发送邮件,python版本必须是2.7+ import os,time,re,smtplib,logging from email.mime.text import MIMEText from email.header import Header from aliyunsdkcore import client from aliyunsdkcms.request.v20170301 import QueryMetricListRequest import getalioss #这个是获取阿里云oss的脚本,叫getalioss.py from getalioss import getlists oss_today_capacity,oss_yesterday_capacity,oss_diff = getlists() color = 'green' if oss_diff[ 0 ]< '0' else 'red' color1 = 'green' if oss_diff[ 1 ]< '0' else 'red' color2 = 'green' if oss_diff[ 2 ]< '0' else 'red' color3 = 'green' if oss_diff[ 3 ]< '0' else 'red' color4 = 'green' if oss_diff[ 4 ]< '0' else 'red' color5 = 'green' if oss_diff[ 5 ]< '0' else 'red' def send_mail(to_list,cc_list,html,sub): me = mail_user msg = MIMEText(html,_subtype = 'html' ,_charset = 'utf-8' ) #格式化邮件内容为html,编码为utf-8 msg[ 'Subject' ] = sub #邮件主题 msg[ 'From' ] = me #发件人 msg[ 'To' ] = ";" .join(to_list) #收件人,将列表转换为字符串 msg[ 'Cc' ] = ";" .join(cc_list) #抄送人,将列表转换为字符串 try : send_smtp = smtplib.SMTP() #实例化 send_smtp.connect(mail_host) #连接smtp服务器 send_smtp.login(mail_user,mail_pass) #使用定义的账号密码进行登录 send_smtp.sendmail(me,to_list + cc_list,msg.as_string()) #发送邮件 send_smtp.close() #关闭连接 return True except Exception,e: #logging.debug(e) print ( "ERROR!!!!" ) return False if __name__ = = '__main__' : mail_host = 'mail.dahuatech.com' #这里填写发信的服务器地址 mail_user = 'dh_software007@dahuatech.com' #这里填写发信人 mail_pass = '发送邮件的密码' mailto_list = [ 'chenx1242@163.com' ] #这里填写收信人 mailcc_list = [ '124208739@qq.com' , 'chen_shuo@dahuatech.com' ] #这里是抄送 html = """ <tablecolor="CCCC33"width="800"border="1"cellspacing="0"cellpadding="5"text-align="center"> <tr> <B><tdtext-align="center">云厂家</td></B> <B><tdtext-align="center">Bucket名称</td></B> <B><tdtext-align="center">保存内容</td></B> <B><tdtext-align="center">今日容量大小</td></B> <B><tdtext-align="center">昨日容量大小</td></B> <B><tdtext-align="center">两日容量差</td></B> </tr> <tr> <tdtext-align="center"rowspan="3">阿里云杭州一区</td> <tdtext-align="center">lechangecloud</td> <tdtext-align="center">云录像(含录像封面)、报警图片、全景图片 合成(原始+合成后图片)</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center"style="color:%s">%sGB</td> </tr> <tr> <tdtext-align="center">lechangecloud-public</td> <tdtext-align="center">录像分享文件</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center"style="color:%s">%sGB</td> </tr> <tr> <tdtext-align="center">lechangehls</td> <tdtext-align="center">视频直播文件</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center"style="color:%s">%sGB</td> </tr> <tr> <tdtext-align="center"rowspan="2">阿里云深圳一区</td> <tdtext-align="center">online-sz-private</td> <tdtext-align="center">云录像(含录像封面)、报警图片、全景图片 合成(原始+合成后图片)</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center"style="color:%s">%sGB</td> </tr> <tr> <tdtext-align="center">online-sz-public</td> <tdtext-align="center">录像分享文件</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center"style="color:%s">%sGB</td> </tr> <tr> <tdtext-align="center">阿里云杭州二区</td> <tdtext-align="center">录像分享文件</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center"style="color:%s">%sGB</td> </tr> <tr> <tdtext-align="center"rowspan="3">金山云</td> <tdtext-align="center">js-online-private</td> <tdtext-align="center">云录像(含录像封面)</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> </tr> <tr> <tdtext-align="center">js-online-public</td> <tdtext-align="center">录像分享文件</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> </tr> <tr> <tdtext-align="center">js-online-hls</td> <tdtext-align="center">视频直播文件</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> <tdtext-align="center">%sGB</td> </tr> <tr> <tdtest-align="center"colspan="6">注意事项1:阿里云的云存储延>迟大约2~3小时,金山云的云存储延迟为一天;<br/> 注意事项3:此邮件是系统自动发出,如果有任何疑问请找陈硕; </tr> </table>""" % (oss_today_capacity[ 0 ],oss_yesterday_capacity[ 0 ],color,oss_diff[ 0 ],oss_today_capacity[ 1 ],oss_yesterday_capacity[ 1 ],color1,oss_diff[ 1 ],oss_today_capacity[ 2 ],oss_yesterday_capacity[ 2 ],color2,oss_diff[ 2 ],oss_today_capacity[ 3 ],oss_yesterday_capacity[ 3 ],color3,oss_diff[ 3 ],oss_today_capacity[ 4 ],oss_yesterday_capacity[ 4 ],color4,oss_diff[ 4 ],oss_today_capacity[ 5 ],oss_yesterday_capacity[ 5 ],color5,oss_diff[ 5 ], '9.27' , '9.26' , '0.01' , '381.71' , '381.71' , '0.0' , '14.9' , '14.9' , '0.0' ) #这里对应上面%s sub = "乐橙云存储资源空间情况每日汇报表" #这里是标题 if send_mail(mailto_list,mailcc_list,html,sub): logging.debug( "Sendmailsucced!" ) else : logging.debug( "Sendmailfailed" ) 这里我金山云没有用脚本获取值,而是手动输入一些值作例子,整个脚本效果如下: 可以看到,在“差值”那一栏,正数是红色,负数是绿色。 新的知识点! 1)上面那个脚本涉及到了B.py获取A.py的变量的问题,在这里我举个例子方便理解: 假设A.py是这样的: 1 2 3 4 5 6 7 #!/usr/bin/envpython #-*-coding:UTF-8-*- a = 1 b = "lebronjames" c = "YaoMing" def f(): return "function" B.py需要得到A.py的变量和函数,那么B.py可以这么写: 1 2 3 4 5 6 7 8 9 #!/usr/bin/envpython #-*-coding:UTF-8-*- import A #如果A.py跟B.py不在一个文件夹下,这里需要写绝对路径 a = a.a print (a) from a import b,c,f print (b) print (b) + (c) f() 执行一下B.py,看一下效果: 2)接着上面的例子说,最好是A.py生成一个结果,然后传给B,而不是把生成结果的事交给B去办,因为变量太复杂(比如涉及到for in 循环),那么在from import那步就很容易出错,所以说“模块化中的单元是类、函数和常量,而不是变量”。 比如A.py中涉及了一个for in循环,那么可以将得到的lists写进一个函数getlists()里,然后在B.py里写 lists=getlists()。 最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文! 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1969705

优秀的个人博客,低调大师

科普|文本分析浅析——文档分类

序言 自动文档分类是一个很好的例子,说明如何善用机器学习和自然语言处理,让机器更好地处理人类语言。自动分类目的,是给一个文档或一段文字指派一个或多个类别,以方便对文档进行归类和管理。特别是对于出版社、新闻网站、博客或其他需要处理大量文字内容的人和机构来说,人工对文档,并进行分组和分类是极其耗费人力和时间的工作。 大体上讲,有两类机器学习方式:监督学习和非监督学习。监督学习方法是在“以往的观察”之上建立模型,这种“以往的观察”被称为训练集。在做文档分类时,预先定义好文档类别,再人工为训练数据集中每个文档打上类别标记。建立了训练数据集之后,接着是用这个人工标记的数据集训练一个分类器。其思想是:在训练完成后,这个分类器将能够预测任何一个给定文档的类别。 非监督机器学习方式有所不同,它们不需要训练数据集。以文档分类来说,类别是事先未知的。非监督

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册