Python学习笔记(五)

第三方模块

  python有很多的第三方模块,安装后直接用就可以了,常用的三种安装方法如下:

  1、pip安装

    在计算机命令行模式下,运行 pip install pymysql

    如果安装不成功,可以FQ或者把pip源改为国内网站

  2、下载.whl文件

    在计算机命令行模式下,运行 pip install C:\Users\Desktop\pymysql.whl

  3、下载压缩包文件

    1.解压缩

    2.文件地址栏cmd 然后运行 python  setup.py install

 redis

  redis是非关系型数据库,以key - value形式存储,数据存在内存中,读取速度快

import redis
r = redis.Redis(host='1.1.1.1',port=6379,password='********&*',db=10) # 连接redis
# 操作string类型的
#
r.set('hahhah','范德萨发手动发的',50) # 增加数据,设置失效时间,默认-1永久生效
#
res = r.get('hahhah') # bytes 二进制
print(res)
print(res.decode()) # 编码,变成字符串
# 修改
r.set('hahhah','范德萨发手动发的')
# 删除
r.delete('hahhah') # 删除不存在的,不报错
# 其他的方法
print(r.keys()) # 获取到所有的key
print(r.keys('*info')) # 过滤,模糊匹配
print(r.exists('hahhah')) # 判断key是否存在
r.flushdb() # 清空当前数据库里所有的key
# 哈希类型 hash,字典嵌套字典
# 增删改查
r.hset('hhhaa','aaa','kjlkjlkjljkjk') # 增加,修改
r.hset('hhhaa','sss','fdsfsdfdsfdsf')
print(r.hget('hhhaa','aaa')) # 获取制定小key里面的数据
print(r.hgetall('hhhaa')) # 获取大key里面的数据
res = r.hgetall('hhhaa')
a = {}
for k,v in res.items():
    a[k.decode()] = v.decode()
print(a)
for i in res:
    res[i.decode()] = res.pop(i).decode()
print(res)
r.hdel('hhhaa','aaa') # 删除制定的小key
r.delete('hhhaa') # 直接删除大key
# 其他类型
r.expire('hhhaa',50) # 制定key的失效时间
print(r.ttl('hhhaa')) # 查看key的失效时间
print(r.type('hhhaa')) # 查看key的类型

pymysql

import pymysql
# 1.连上数据库,ip,账号密码,端口号,数据库
# 2.执行sql,获取结果
coont = pymysql.connect(host='1.1.1.1',user='xxxx',password='******',
                port=3306,db='xxx',charset='utf8',autocommit=True)
cur = coont.cursor() # 建立游标
res = cur.execute('insert into nhy VALUES ("","haha","123456");') # 执行sql语句,不会返回数据
sql = 'insert into nhy (NAME ,pwd) VALUES ("haha1","123456");'
res = cur.execute(sql)
coont.commit() # 提交
cur.execute('select * from nhy where name = "haha1"')
print(cur.fetchall()) # 获取查询到的所有结果,游标走到最后
print(cur.fetchone()) # 只获取一条
print(cur.fetchmany(11)) # 指定获取几条
cur.close() # 游标关闭
coont.close() # 连接关闭

nnlog

import nnlog
my_log = nnlog.Logger('aaa.log',level='debug',when='d',backCount=5)# 文件、级别、多久执行一次,保留几个文件
my_log.debug('这是debug的')
my_log.info('这是info的')
my_log.warning('这是waring的')
my_log.error('这是error的')

加密模块

import hashlib
s = '123456'
print(s.encode())
m = hashlib.md5(s.encode()) # md5加密算法不可逆
print(m.hexdigest()) # 获取加密后的结果,传byes类型的
# 所有一样的字符串,md5之后的结果都是一样的
# 撞库

发送邮件

import yagmail
# 账号、密码、邮箱服务器、收件人、抄送人、主题、正文、附件
# qq邮箱需要加smtp_ssl=True,安全协议
username = 'XXXXXXXX@163.com'
password = '***********' # 授权码
mail = yagmail.SMTP(user=username,password=password,host='smtp.163.com') # 连上邮箱
mail.send(to=['XXXXX@qq.com','XXXXXX@qq.com'],
          cc='XXXXXX@126.com',
          subject='邮件主题',
          contents='正文',
          attachments=r'C:\Users\Administrator\Desktop\啊啊啊啊.txt')
# 发送附件,中文是乱码,yagmail里面代码有问题,使用别的yamail

操作excel

 

import xlwt
book = xlwt.Workbook() # 创建excel
sheet = book.add_sheet('stu_info') # 创建sheet页
sheet.write(0,0,'学生编号') # 行、列、写什么
sheet.write(0,1,'学生姓名')
sheet.write(0,2,'学生成绩')
sheet.write(1,0,'1')
sheet.write(1,1,'聂磊')
sheet.write(1,2,'88.88')
book.save('stu.xls') # 用xls结尾,用xlsx的话office可能打不开,wps可以

import xlrd #只能读
book = xlrd.open_workbook(r'E:\MyPy\pystu\day6\stu.xls')
print(book.nsheets) # 获取有多少sheet页
sheet = book.sheet_by_index(0) # 根据索引获取
book.sheet_by_name('stu') # 根据名字获取
print(sheet.cell(0,0).value) # 制定行和列,获取单元格里的数据
print(sheet.cell(1,0).value)
print(sheet.row_values(1)) # 获取某一行的数据
print(sheet.nrows) # 获取excel里面总共有多少行
print(sheet.col_values(0)) # 获取某一列的数据
print(sheet.ncols) # 获取excel里面总共有多少列

from xlutils import copy
# 修改
# 1.打开原来的excel
book = xlrd.open_workbook(r'E:\MyPy\pystu\day6\stu.xls')
# 2.拷贝一个新的excel
new_book = copy.copy(book)
sheet = new_book.get_sheet(0) # 获取第一个sheet页
sheet.write(1,4,'18')
new_book.save(r'E:\MyPy\pystu\day6\stu.xls')

 

posted on 2018-07-11 20:46  青冥之鹰  阅读(136)  评论(0编辑  收藏  举报

导航