python day08
办公自动化相关知识
python操作excel
python能够操作Excel的模块有很多列举以下几个
openpyxl、xlrd、xlwt、pandas
openpyxl 只能操作xlsx后缀名的excel文件
xlrd()、xlwt(),只能操作xls后缀名的Excel文件
excel 文件后缀名分别为xls、xlsx
xls:office 2003及以前
xlsx:office 2007及以后
新版office向前兼容。
xlsx 文件比xls文件体积缩小、
xlsx文件存储数据量远大于xls文件
xls文件最多存储256列、2^16(65536)行
xlsx文件最多1048576行,16834列
openpyxl模块操作xlsx文件
#一、excel写操作
from openpyxl import Workbook,load_workbook
# Workbook :当文件(工作薄)不存在谁,使用Workbook创建
# 使用Workbook创建的文件我们看不到,但系统知道其存在,想让文件出现要先保存
# load_workbook: 当文件存在时,加载
wb = Workbook()
# 创建工作表(worksheet) :create_sheet(表名,下标)
# 下标:代表新建工作表位置,不写代表在最后追加
wb.create_sheet('一年级一班')
wb.create_sheet('一年级一班',0)
# 查看已经存在的表名:sheetnames
sheetlist = wb.sheetnames
print(sheetlist)
# 修改表名
#指定工作薄中的工作表:
# active:指定关闭文件时显示在上层的工作表
# 指定打开已经存在的某张表
sheet1=wb.active
print(sheet1)
sheet2 = wb['一年级一班']
print(sheet2)
# 向指定表的单元格写入内容同时也是查看某个单元格内容
# 工作表[列号行号] -> 列号表示大写英文字母
# 工作表.cell(行号,列号) ->列号表示从一开始递增的数字
# value 表示查看某个单元格的值
print(sheet1.cell(1, 1).value)
sheet1.cell(1, 1).value = '姓名'
print(sheet1.cell(1, 1).value)
print(sheet2['A1'].value)
sheet2['A1'].value = '姓名1'
print(sheet2['A1'].value)
# 删除已存在的工作表:remove_sheet(表对象),即要调出要删除的sheet
wb.remove_sheet(wb['Sheet'])
wb.save('学生成绩.xlsx')
from openpyxl import load_workbook
from random import randint
# 1.加载已经存在的文件
wb = load_workbook('学生成绩.xlsx')
print(wb)
#2.查看已经存在的所有工作表
sheetList=wb.sheetnames
print(sheetList)
#3.指定工作表
sheet = wb['一年级一班']
print(sheet)
#4.学生成绩表生成规则:
# 存在 姓名、语文、数学、英语 四列
# 存在100名学生,姓名列填入 python001~python100
# 语文、数学、英语三列从[0,100]随机生成
column = ['姓名','语文','数学','英语']
for i in range(len(column)):
sheet.cell(1,i + 1).value=column[i]
for i in range (1,101):
#写姓名
stuName = f'python{i:0>3}'
sheet.cell(i+1,1).value=stuName
#写每个学生的三科成绩
for j in range(2,5):
sheet.cell(i+1,j).value = randint(0,100)
# 保存、关闭
wb.save('学生成绩.xlsx')
print('写入完成')
读学生成绩表
from openpyxl import load_workbook
wb = load_workbook('学生成绩.xlsx')
# 选择‘一年级一班’工作表
sheet = wb['一年级一班']
# 查看工作表的最大行列数
# max_row
# max_column
rows = sheet.max_row
cols = sheet.max_column
print(sheet.max_row,sheet.max_column)
for i in range (1,rows+1):
for j in range (1,cols+1):
print(f'{sheet.cell(i,j).value:^10}',end='')
print()
简单描述调试界面几个按钮的功能
step over :进入下一步代码
step into :进入到每行代码底层,查看底层代码
step into my Code: 进入到你自己写的代码底层代码查看执行顺序。
step out :将进入到底层的代码直接一步执行完
run to cursor:运行断点
用python 发邮件:上
python发送邮件涉及的知识点
两个内置模块:smtolib ,email
需要了解附件以什么样的形式添加到邮件中(open方法、二进制、字节)
什么是授权码
能够看懂邮件发送过程中的发送编码(发送成功、发送失败、垃圾邮件等编码编号)
什么是smtp协议
如何将python发送邮件实现最大化的简单、简洁、便捷
需要会使用python进行文件读写