python中的日志操作和发送邮件
1、python中的日志操作
- 安装log模块:pip install nnlog
- 参数:my_log = nnlog.Logger('server_log.log',level='debug',backCount=5,when='D',interval=2)
- ‘server_log.log’ 日志文件名称,必填参数
- level 指log的级别,默认为debug级别。总共有debug,info, warning, error这四种级别
- backCount=5 为默认值,是日志的保存时间,保存几天的日志
- when=‘D’ 为默认值,指按照天保存日志,可以为分钟,秒
- interval=1 为默认值,间隔时间

import nnlog
nnlog.Logger.words='哈哈哈哈' log = nnlog.Logger('book_server.log') # debug 最详细的log内容
# info 显示调用方法等信息
# warning 显示warning和error的log
# error 只显示error的log
log.surprise()
log.debug('xxx值是什么')
log.info('调用了什么xxx')
log.warning('xx警告!')
log.error('xxx出错!')

2、python操作自动发送邮件
- yagmail.SMTP
- username:邮箱账号
- passwd:获取邮箱授权码,注意不是邮箱登录密码
- QQ邮箱:设置→帐户→POP3/SMTP服务开启→生成授权码
- 163邮箱:设置→客户端授权密码→设置客户端授权码开启
- host:
- QQ邮箱:smtp.qq.com
- 163邮箱:smtp.163.com
- smtp_ssl=True:安全协议的,现在大部分邮箱都是有这个,可以自己尝试。如QQ邮箱,126,139邮箱等,需要设置安全协议为True
- host:
- mail.send
- to:收件人,to='xxxx@qq.com' 。如果需要发送给多人,to=['xxx@qq.com','xxx@qq.com']
- cc:抄送人,cc='xxxx@qq.com' 。如果需要抄送给多人,cc=['xxx@qq.com','xxx@qq.com']
- subject:邮件主题
- contents:邮件正文
- attachment:附件,如果发送附件名称中文乱码,使用更新后的文件yagmail-0.10.212-py2.py3-none-any.whl

import yagmail
username='uxxxp4p@163.com'
password='hxxxxxx3'#生成授权码,qq、163、126都是授权码 mail_server = 'smtp.163.com'
# mail_server = 'smtp.qq.com'
# mail_server = 'smtp.126.com' m = yagmail.SMTP(user=username,password=password,host=mail_server)
# smtp_ssl=True,如果邮箱使用了安全协议,就需要加这个
#qq邮箱等就是使用了安全协议 to = ['1137xxxx@qq.com','wxxx16@163.com','xxxx@qq.com']
cc = ['613xxxx7@qq.com','1196xxxx2@qq.com','1xxxxx04@qq.com']# 发送给多人,to传list(win10路径写\\)
m.send(to=to,cc=cc,subject='今天吃了吗', contents='今天吃鱼肉了吗,吃饱没', attachments=r'tools.py')

python中的日志操作和发送邮件的更多相关文章
- Python中的日志处理
在日常项目中,总是需要记录下一些细小信息或者错误码.错误信息的,这个时候就需要进行日志的操作.python中用于日志创建.设置和记录等功能的模块,就是logging了,下面是对其基本使用方法的介绍: ...
- python中的赋值操作和复制操作
之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...
- python中的赋值操作
参考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(写的蛮好) python中的赋值操作“=” ...
- python中OS模块操作文件和目录
在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- Python 中 logging 日志模块在多进程环境下的使用
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...
- Python中的json操作
Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...
- Python中的切片操作
python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>& ...
- python中的句柄操作
python中的句柄操作 制作人:全心全意 通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat ...
随机推荐
- A1098. Insertion or Heap Sort
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- 【洛谷P3901】数列找不同
题目大意:给定一个长度为 N 的序列,每个点被染了一个颜色.现有 M 个询问,每个询问查询区间 [l,r] 内的点是否颜色都是不同的. 题解:莫队裸题. 直接维护区间颜色数,用 cnt[] 记录下区间 ...
- vue2.0项目实战(5)vuex快速入门
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 ...
- javase的网络编程(InetAddress,UDP,TCP,URL,Socket,DatagramSocket)
通过一段时间对java网络编程相关内容的学习,写下这篇随笔,对这一部分的知识进行梳理和总结. 网络编程 一.网络编程三要素: IP地址:网络会给每个联网的主机分配一个数字的编码地址,该地址就是IP地址 ...
- 苹果电脑利用wget总是会出现无法建立 SSL 连接的问题
在做迁徙学习的过程中,需要下载已经训练好的Inception_v3模型,首先我们为了将下载的模型保存到指定的地方,我们需要利用 wget -P 想要保存的目录 模型的网址,例如 wget -P /Vo ...
- Linux 多线程 - 线程异步与同步机制
Linux 多线程 - 线程异步与同步机制 I. 同步机制 线程间的同步机制主要包括三个: 互斥锁:以排他的方式,防止共享资源被并发访问:互斥锁为二元变量, 状态为0-开锁.1-上锁;开锁必须由上锁的 ...
- zend studio报错
Problems encountered while setting project description. Cannot create linked resource '/.org.eclipse ...
- u-boot(一)启动简介
目录 u-boot(一)启动简介 启动概述 内部存储布局 Bootloader概述 内核启动参数 taggedlist 体验一下实际的Uboot U-boot的使用帮助 U-boot基本要求 titl ...
- Kademlia、DHT、KRPC、BitTorrent 协议、DHT Sniffer
catalogue . 引言 . Kademlia协议 . KRPC 协议 KRPC Protocol . DHT 公网嗅探器实现(DHT 爬虫) . BitTorrent协议 . uTP协议 . P ...
- Kafka技术内幕 读书笔记之(二) 生产者——服务端网络连接
KafkaServer是Kafka服务端的主类, KafkaServer中和网络层有关的服务组件包括 SocketServer.KafkaApis 和 KafkaRequestHandlerPool后 ...