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
  • 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中的日志操作和发送邮件的更多相关文章

  1. Python中的日志处理

    在日常项目中,总是需要记录下一些细小信息或者错误码.错误信息的,这个时候就需要进行日志的操作.python中用于日志创建.设置和记录等功能的模块,就是logging了,下面是对其基本使用方法的介绍: ...

  2. python中的赋值操作和复制操作

    之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...

  3. python中的赋值操作

    参考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(写的蛮好) python中的赋值操作“=” ...

  4. python中OS模块操作文件和目录

    在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...

  5. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  6. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  7. Python中的json操作

    Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...

  8. Python中的切片操作

    python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>& ...

  9. python中的句柄操作

    python中的句柄操作 制作人:全心全意 通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat ...

随机推荐

  1. LOJ#2134 小园丁与老司机

    我的妈呀,这码农神题...... 第一问是个DP,要记录方案.先把纵向的转移建图.发现可以按照y坐标来划分阶段,每一层vector存一下,用前后缀最大值来转移. 第二问考虑所有可能成为最优方案的边.从 ...

  2. LOJ#2302 整数

    解:发现这苟东西是个3千万位的二进制数......毒瘤吧. 拆位考虑,如果一个地方本来是1然后+1,就会把它和它前面连续的一段1变成0,并把第一个0变成1. 如果本来是0然后-1了,就会把它和它前面连 ...

  3. java面试——问题回溯

    背景:用来记录面试过程中遇到的问题,在这里进行记录,下次不要犯同样的错误. 迪普科技 Linux服务器下的top命令 #动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / to ...

  4. Windows android SDK环境配置及判断安装成功

  5. mfc01

    1.解决不能将参数1从“const char []”转换为“LPCTSTR” ,使用多字节字符集.

  6. Codeforces Round #523 (Div. 2) D. TV Shows

    传送门 https://www.cnblogs.com/violet-acmer/p/10005351.html 题意: 有n个节目,每个节目都有个开始时间和结束时间. 定义x,y分别为租电视需要的花 ...

  7. Excel:11个查询函数组合

    还不懂?上栗子~ 1.普通查找 根据表二中的姓名,查找表一对应的应发工资.最基础的VLOOKUP函数就能搞定. 2.反向查找 根据表二姓名,查找表一编号.但表一中编号列在姓名列之前,无法直接使用VLO ...

  8. hibernate的学习周

    Hibernate核心:ORM(对象关系映射) BeginSession关闭的时候要session.close(),而getCurrentsession不需要,它会自动关闭 Session.load( ...

  9. 【矢量绘图工具】Adobe Illustrator (AI) CC 2019 for Mac 23.0

    以上图片来源于互联网分享,如涉及版权问题请联系作者删除. 文章素材来源:风云社区(www.scoee.com) 下载地址:风云社区(www.scoee.com)   [简介] Adobe illust ...

  10. JavaMail发送邮箱

    package utils; import java.security.GeneralSecurityException; import java.util.Properties; import ja ...