python(13)---发邮件、写日志、操作redis数据库

一、写邮件

import yagmail

user = ‘[email protected]‘
password = ‘rtcxbuejmqrdgjcd‘  #不是qq密码,是邮件授权码 在qq邮箱,设置--账户--开启POP3/SMTP服务,获得授权码

m=yagmail.SMTP(host=‘smtp.qq.com‘,user=user,password=password)  #host-- 163邮箱用 tp.163.com

m.send(to=[‘[email protected]‘,‘xxx.qq.com‘],cc=[‘xx.qq.com‘,‘xxx.qq.com‘],
       subject=‘明天不上课‘,contents=‘明天去体检‘,attachments=‘学生.xls‘,
       smtp_ssl=True)

# to 收件人,发送给多个人时用list
#cc  抄送给谁,多个人时用list
#attachments 附件  用官方yagmail模块,附件名为中文是会显示乱码;改用nn改过的yagmail模块
# smtp_ssl=True  QQ邮箱需加上,163邮箱不用

二、写日志

日志级别:
error
warning
info
debug  默认
级别越低,打印的信息越多 

import nnlog  #导入的是nn自己写的log模块

log =nnlog.Logger(‘my.log‘,level=‘info‘,backCount=3,when=‘S‘)
#level--打印日志的级别  如果为error级别,比它级别低的日志都不会打印
#backCount--保存日志的最大个数,超过自动删除前面的
#when--产生日志的频率  D-每天  M-每分  S-每秒

log.info(‘lihui登录。。。‘)
log.error(‘数据库连接失败‘)

三、操作redis数据库

先安装redis数据库

# 关系型数据库:oracle、mysql...
      #有表、有sql
      #数据放在磁盘上

# 非关系型数据库  nosql:redis,mongodb,memcache
        # 没有表
        # 没有sql语句
        # k-v
        # 每秒支持30w次读写
        # 数据全部都是放在内存中的,性能高 (电脑一重启就没了)

import redis

ip =‘118.XX.3.40‘
password=‘HK139bckk‘

r= redis.Redis(host=ip,password=password,port=6379,db=3,decode_responses=True)
#默认端口 6379
#db--选择哪个数据库
#加了decode_responses=True ,返回的二进制数据直接decode,下面就不用自己再写decode转换了

r.set(‘lh2‘,‘nihaoya‘) #新增和修改都用set

res =r.get(‘lh2‘)     #获取数据
print(res)    #b‘nihaoya‘  没有加 decode_responses=True 时
print(res.decode())  #‘nihaoya‘  decode() 二进制转成字符串      encode() 字符串转二进制

r.delete(‘lh2‘) #删除
r.flushdb() #删除这个数据库里面所有的key

r.set(‘lh123‘,‘dudududu‘,20)  #设置有效时间为20s

res=r.get(‘session:lh‘) #数据库中文件夹分类  session即为文件夹名
print(res.decode())

print(r.keys()) #获取所有的key
print(r.keys(‘session*‘)) #过滤以session开头的所有的key

# res=r.get(‘mcx‘)
# print(res.decode())

#redis中的哈希类型  就是一个两层字典
#哈希类型 的方法和其他数据类型的方法不一样
session={
    "lh":{‘age‘:27,‘sex‘:‘nv‘},
    "lh2":{‘age‘:28,‘sex‘:‘nan‘}
}

r.hset(‘jnz_stus‘,‘lw‘,‘hehehe‘)  #添加hash类型的值:jnz_stus--外层大字典的key; lw--外层字典小key; hehehe--内层字典value
res =r.hget(‘jnz_stus‘,‘mcx‘)  #获取里面小key的值
print(res.decode())

r.delete(‘jnz_stus‘) #删除大key jnz_stus
r.hdel(‘jnz_stus‘,‘lw‘) #删除指定的小key

res = r.hgetall(‘jnz_stus‘) #获取到大key里面的所有数据
res_new={}
for key ,value in res.items():  #没有加decode_responses=True时,需要手动循环decode
    res_new[key.decode()]=value.decode()
print(res)

原文地址:https://www.cnblogs.com/HathawayLee/p/9795156.html

时间: 2024-08-25 20:37:38

python(13)---发邮件、写日志、操作redis数据库的相关文章

Python学习之使用Python操作Redis数据库

最近在写一个检查一台服务器上所有游戏区服配置文件中redis某个key值大小的脚本,本打算使用shell+awk+sed的方式去解决这个问题,但是由于redis的配置信息是php数组形式.shell脚本一时没有写出来,就请教他人帮忙写了个python脚本,但是自己python不是很精通,于是按照脚本中涉及到的python知识现学现用,然后根据自己的需求更改脚本.这里分享一下如何使用python操作redis数据库. Redis的Python驱动源码下载地址是https://github.com/

python实现发邮件(sendmail.py )

#!/usr/bin/python #-*-coding:utf-8-*- #-*-coding:utf-8-*- #filename :sendmail.py import sys import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email import Utils imp

C++操作Redis数据库

今天,Mayuyu来学习如何用C++来操作redis数据库.通过hiredis.h接口来实现,目前只能在Linux环境使用. hiredis.h的下载地址为:https://github.com/redis/hiredis 主要包括如下四个方法 1. redisContext* redisConnect(const char *ip, int port) 该函数用来连接redis数据库, 两个参数分别是redis数据库的ip和端口,端口号一般为6379.类似 的还提供了一个函数,供连接超时限定,

Anaconda 安装redis-py模块操作redis数据库

今天遇到了一个很神奇的事情 ,在使用python操作redis 数据库的时候 ,如果使用  pip install redis    安装的是python 连接 redis的模块,  但是如果是在anaconda  里面使用  conda install -c anaconda redis  安装的是  redis数据库, 这个问题折腾了一下午,最终还是搞明白的,其实在使用 conda 要安装的是  redis-py   这个文件才对,但是至于pip安装与conda安装为什么是不同的文件我也不清

java操作redis数据库实例(redis集群)

1.配置redis集群 <?xml version="1.0" encoding="UTF-8"?> <redisCluster> <!--userRoute --> <clusterGroup name="userRoute" selectdb="1"> <server host="10.177.129.16" port="6379"

【Python系列】Python自动发邮件脚本

缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月,看看效果再拓展吧. 脚本主要是通过Python写的,调的smtplib库,这些是基础,大家在网上一搜一大堆,今天主要给大家讲解下如何避免进入垃圾邮件系统,以及整个系统搭建时的一些思想.可能刚搞Python不久,有很多可能是错误的写法望大家提出来哈~ 配置 CentOS7.0系统 Python 3.4

【Python】 发邮件用 smtplib &amp; email

■ smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要是参考了那个发报表的脚本,简单记录了下最简单的用法,没啥参考价值= = ■ smtplib基本用法 smtp = smtplib.SMTP() #建立smtp对象 smtp.connect('server',port) #建立与smtp服务器的连接 smtp.login('user','password

python 自动发邮件

一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,最终的MIME就是'text/plain',最后一定要用utf-8编码保证多语言兼容性. 然后,通过SMTP发出去: 1 # coding:utf-8 2 import smtplib 3 from email.mime.text i

python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇下(详解)

简介 发邮件前我们需要了解的是邮件是怎么一个形式去发送到对方手上的,通俗点来说就是你写好一封信,然后装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去,其他的就不关心了,只是关心时间,而电子邮件不像日常发送邮件的按天算,时间都是按 秒算的. 电子邮件的发送流程: 1.你使用某款电子邮件软件MUA:mail user agent --邮件用户代理,填写完成点击发送 2.在你点击发送的时候电子邮件软件发出去,到MTA:mail transfer agent--邮件传输代理,即email服务提