python学习,模块-数据库(mysql)-excel操作-写日志-邮件-md5加密

#模块
# 标准模块
# python自带的
# 第三方模块
# pymysql
# 自己写的python文件
# 导入模块的实质
# import my_model
# 把导入的模块运行了一遍
# 导入模块的顺序
# 1、存在当前目录下找
# 2、在python的环境变量里面去找
# if __name__ == '__main__':#作用是别的文件里面导入这个python的时候不会执行里面代码

# 一个python文件就是一个模块

# pip install xxx(要安装的模块)
# 手动安装模块
# pip install whl文件的绝对目录
# .gz文件 安装 下载后解压 进入到对应目录执行 python setup.py install

# pip list 列出当前所有安装的模块
# pip freeze > python 模块 .txt #把第三方模块放入到txt文件中
# pip install -r python 模块.txt #指定文件批量安装模块

枚举函数
l = ['xiaoming','111','2222']
for bianhao,value in enumerate(l):
print('编号%s -- > %s'%(bianhao,value))


操作数据库
import  pymysql

#ip port user password db


#建立数据库连接 autocommit 设置自动提交,若设置为True,则执行增删改操作的时候就不需要执行commit()提交方法
con = pymysql.connect(host='118.24.3.40',
user='',password='',
db='',port=3306,charset='utf8',autocommit=True)
#建立游标(类似仓库管理员)
# cur = con.cursor()
cur = con.cursor(pymysql.cursors.DictCursor) #指定返回类型 字典类型
#执行sql语句,无法获取结果
sql = '' #查
# sql = ""
cur.execute(sql)
# con.commit() #修改,新增,删除必须commit提交 否则无法生效 若连接数据库时为设置自动提交,则需执行此方法
#获取sql执行结果
print(cur.fetchall()) #获取所有返回值
# print(cur.fetchone()) # 获取一条
# print(cur.fetchmany(10)) #取指定条数
cur.close()
con.close()

操作excel
# python 操作excel
# import xlrd

# excel_book = xlrd.open_workbook('F:\PythonWorker\day5\处女座学员名单.xlsx')
# sheet1 = excel_book.sheet_by_index(0) #根据索引获取sheet
# sheet2 = excel_book.sheet_by_name('作业') #根据名字获取sheet

# print(sheet2.row_values(0)) #获取指定行的数据
# print(sheet2.col_values(0)) #获取指定列的数据
# print(sheet2.cell(0,0).value) #获取指定格的内容
# print(sheet2.nrows) #获取行数
# print(sheet2.ncols) #获取列数


# 写入excel
# import xlwt
#
# new_book = xlwt.Workbook()
# sheet = new_book.add_sheet('人员名单')
#
# stu = [
# [1,'jiajiju','beijing','186232424','女'],
# [2,'韩敏','beijing','186232424','女'],
# [3,'焦丽妃','beijing','186232424','女'],
# ]
#写入excle方法1
# row = 1 #行号
# for row_data in stu:
# col = 0
# for col_data in row_data:
# sheet.write(row,col,col_data)
# col += 1 #每次写一列,列就加一
# row += 1 #每写一行 行号加1

#写入excel方法二
# for i in range(len(stu)):
# for j in range(len(stu[i])):
# sheet.write(i,j,stu[i][j])

# 写入excel 方法三 ******************************
# for i,row_data in enumerate(stu,1):
# for j,col_date in enumerate(row_data):
# sheet.write(i,j,col_date)

# sheet.write(0,0,'姓名')
# sheet.write(0,1,'学习形式')
#
# sheet.write(1,0,'aaa')
# sheet.write(1,1,'bbb')

# new_book.save('student1.xls')


#修改excel
import xlrd
from xlutils import copy
#打开一个excel
book = xlrd.open_workbook('student1.xls')
#复制一份
new_booke = copy.copy(book)
sheet = new_booke.get_sheet(0) #获取sheet页
title = ['编号','名字','地址','电话','性别']
for index,t_data in enumerate(title):
sheet.write(0,index,t_data)

new_booke.save('student1.xls')
# print(dir(new_booke))
#修改excel


日志操作
import nnlog,time
def write_log(content):
with open('text.log','a+',encoding='utf-8') as fw:
data = time.strftime('%Y-%m-%d %H:%M:%S')
s = '%s , 内容 %s'%(data,content)

#level 设置日志级别 backCount设置保留几个日志 when设置多久产生一个文件 S D
log = nnlog.Logger('test.log',level='warn',backCount=5,when='D')
log.debug('调试信息')
log.info('正常打印信息')
log.warning('警告')
log.error('错误信息')
# log.surprise()


邮件操作

import  yagmail

# username = '[email protected]'
username = '[email protected]'
# password = 'houyafan123'
password = 'ldh8035336'
smtp = 'smtp.163.com'

mail = yagmail.SMTP(user=username,password=password,host=smtp)

#如果发送多个人 抄送多个人 多个附件 就要写list
to = '[email protected]'
# to = ['a.qq.com','b.qq.com']
cc = '[email protected]'

subject = '123!'
content = '345'
mail.send(to=to,cc=cc,subject=subject,contents=content,attachments='附件绝对路径多个附件使用list方式')



md5加密

import  hashlib

#md5加密
password = '123456'
# password = chr(password)
#加密的数据需要先encode() 转换为bytes类型
s = hashlib.md5(password.encode())
print(s.hexdigest())

#rb代表二进制打开
f = open('处女座学员名单.xlsx','rb')
content = f.read()
sha = hashlib.sha256(content)
print(sha.hexdigest()) #得到加密后的字符串

#加盐
def my_md5(content,salt='FJKDldfk'):
s = str(content)+salt
md5 = hashlib.md5(s.encode())
return md5.hexgigest()

猜你喜欢

转载自www.cnblogs.com/huaixiaohai/p/11093817.html