Python的相关知识

1.python列表相关的使用

1.1 相关的简单操作

1.1.1 list集合相关操作

print("==============append======================")
name_list=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list) # ['功夫熊猫', '韩娇虎', '跳跳猴']
name_list.append('师傅') 
print(name_list)# ['功夫熊猫', '韩娇虎', '跳跳猴', '师傅']

print("==============extend======================")
name_list2=['功夫熊猫','韩娇虎','跳跳猴'] 
print(name_list2)#['功夫熊猫', '韩娇虎', '跳跳猴']
name_list2.extend(["白雪公主","青蛙王子"]) 
print(name_list2)#['功夫熊猫', '韩娇虎', '跳跳猴', '白雪公主', '青蛙王子']

print("==============insert======================")
name_list3=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list3)##['功夫熊猫', '韩娇虎', '跳跳猴', '白雪公主', '青蛙王子']
name_list3.insert(1,"成龙")
print(name_list3)#['功夫熊猫', '成龙', '韩娇虎', '跳跳猴']

print("==============del======================")
name_list4=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list4) #['功夫熊猫', '韩娇虎', '跳跳猴']
del name_list4[2]
print(name_list4) #['功夫熊猫', '韩娇虎']
#del name_list4
#print(name_list)

print("==============pop======================")
name_list5=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list5) #['功夫熊猫', '韩娇虎', '跳跳猴']
name_list5.pop()
print(name_list5) #['功夫熊猫', '韩娇虎']
name_list5.pop(1)
print(name_list5)#['功夫熊猫']


print("==============remove======================")
name_list6=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list6) #['功夫熊猫', '韩娇虎', '跳跳猴']
name_list6.remove("韩娇虎")
print(name_list6) #['功夫熊猫', '跳跳猴']

print("==============clear======================")
name_list7=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list7)#['功夫熊猫', '韩娇虎', '跳跳猴']
name_list7.clear()
print(name_list7) #[]

print("==============修改======================")
name_list8=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list8) #['功夫熊猫', '韩娇虎', '跳跳猴']
name_list8[1]="师傅"
print(name_list8) #['功夫熊猫', '师傅', '跳跳猴']

print("==============reverse======================")
name_list9=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list9) #['功夫熊猫', '韩娇虎', '跳跳猴']
name_list9.reverse()
print(name_list9) #['跳跳猴', '韩娇虎', '功夫熊猫']

print("==============sort======================")
name_list10=['功夫熊猫','韩娇虎','跳跳猴']
print(name_list10)# ['功夫熊猫', '韩娇虎', '跳跳猴']
name_list10.sort()
print(name_list10) #['功夫熊猫', '跳跳猴', '韩娇虎']


print("==============in======================")
name_list11=['功夫熊猫','韩娇虎','跳跳猴']
print('功夫熊猫' in name_list11) #True
print('功夫熊猫2' in name_list11) #False

1.1.2 dict字典相关操作

print("==============字典的创建======================")
dict1={}
dict2=dict()
dict3={'name':'同学','name':'老师','name':'教授'}
print(type(dict1)) #<class 'dict'>
print(type(dict2)) #<class 'dict'>
print(type(dict3)) #<class 'dict'>

print("==============新增======================")
dict12={}
print(dict12) #{}
dict12['name']='白雪公主'
print(dict12) #{'name': '白雪公主'}
dict12['name']='白马王子'
print(dict12) #{'name': '白马王子'}

print("==============获取======================")
dict13={'name':'白雪公主'}
print(dict13.get("from")) # None
# print(dict13['from']) #报错

print("==============key value======================")
dict14={'name':'Nickel','age':'18','height':'18'}
print(dict14) #{'name': 'Nickel', 'age': '18', 'height': '18'}
print(dict14.keys()) #dict_keys(['name', 'age', 'height'])
print(dict14.values()) #dict_values(['Nickel', '18', '18'])

print("==============删除======================")
dict15={'name':'Nickel','age':'18','height':'18'}
print(dict15) #{'name': 'Nickel', 'age': '18', 'height': '18'}
del dict15['name']
print(dict15) #{'age': '18', 'height': '18'}

1.1.3 选择结构的使用

year=2021

print("========简单条件分支========")
if year>2021:
    print("转眼间,2021就过去了")
else:
    print("2021还在进行当中")

print("========多层条件分支========")
level=88
if level>90:
    print("优秀")
elif level>80:
    print("良好")
elif level>70:
    print("中等")
elif level>60:
  print("及格")      
else:
  print("不及格")  

print("========嵌套条件分支========")
if year>2020:
    level=88
    if level>90:
        print("优秀")
    elif level>80:
        print("良好")
    elif level>70:
        print("中等")
    elif level>60:
        print("及格")      
    else:
        print("不及格")
else:
    print("2021还在进行当中")

print("========三目运算符的使用========")
point=2
es="输入正确" if point==2 else "输入错误"
print(es)

1.2.python中的for循环和while循环

1.2.1 while循环的使用

print('早日学习,可以登上人生巅峰')

a=0
while a<10:
  print('早日学习,可以登上人生巅峰')
  a=a+1

print("任务结束")  

在这里插入图片描述

1.2.2 for循环的使用


for i in 'python':
   print(i)

for name in ['图图','壮壮','小美']:
   print(name)  

#打印1-100之间的数据
for i in range(1,101,1):
  print(i)   

在这里插入图片描述

1.2.3 嵌套for循环的使用

方式1

infos=[
    ['羊和狼','开心锤锤','动感超人'],
    ['孙悟空','哪吒传奇','大头儿子小头爸爸'],
    ['动物世界','星际大发现','宇宙大冒险'],
    ['平凡世界','关于中国人的教育','浅谈致富之路']
]

count =1
for info in infos:
    print(f"周{count}的内容是:")
    count+=1
    for ins in info:
        print(ins)

在这里插入图片描述
方式2

infos=[
    ['羊和狼','开心锤锤','动感超人'],
    ['孙悟空','哪吒传奇','大头儿子小头爸爸'],
    ['动物世界','星际大发现','宇宙大冒险'],
    ['平凡世界','关于中国人的教育','浅谈致富之路']
]

for i in range(len(infos)):
     print(f"周{i+1}的内容是:")
     for info in infos[i]:
         print(info)     

在这里插入图片描述
方式3

infos=[
    ['羊和狼','开心锤锤','动感超人'],
    ['孙悟空','哪吒传奇','大头儿子小头爸爸'],
    ['动物世界','星际大发现','宇宙大冒险'],
    ['平凡世界','关于中国人的教育','浅谈致富之路']
]

for i,info in enumerate(infos):
    print(f"周{i+1}的内容是:")
    for ins in info:
        print(ins)

在这里插入图片描述

1.2.4 break 和continue的使用

1.break的使用方式
print('去逛街,买包~~')


i=2
a=0 
while True:
    print('这家没有喜欢的,去下一家')
    a+=1
    if i>3:
        break 
    elif a==5:
        break  
print('这个包不错,买了~回家')    
2.continue的使用方式
from random import randint

for i in range(10):
    num=randint(0,10)
    print(f"==========第{i}个剧,评分为:{num}")
    print('点赞')
    if num<8:
        continue
    print('收藏')
    print('投币')

在这里插入图片描述

1.2.5 函数的使用

print("Hi,Nickel!!")

#函数没有参数
def fun1():
    print("请记得给我点赞。")

fun1()


##函数传递两个参数
def fun2(a1,a2):
    num=a1+a2
    print(f"{a1}+{a2}={num}")

fun2(20,18)    


###函数参数多个参数
def fun3(*args):
    for i in args:
      print(i)

fun3(1,2,3,4,5)    

###函数参数多个参数
def fun4(**args):
      print(f"传递的参数为{args.get('name1')}")

fun4(name1="小美",name2="小明")

#定义传递的参数的类型
def fun5(a:int,b:int):
    print(a+b)

fun5(10,20)    

#为参数设置默认值
def fun6(a:str,b='投币'):
    print(f"请{a}{b}")

fun6("点赞")
fun6("点赞","aaaaaaa")

#设置输出参数调换

def fun7(a:str,b='投币'):
    print(f"请{a}{b}")
fun7(a="点赞",b="投币")
fun7(a="投币",b="点赞")   

#定义传递的参数的类型
def fun8(a:int,b:int):
    return a+b

print(fun8(10,63)) 

在这里插入图片描述

1.2.6 对象的使用

class Person:
    def __init__(self,name:str,sex:str='男',hobby:str='抽烟,喝酒,打豆豆') -> None:
        self.name=name
        self.sex=sex
        self.hobby=hobby

    def eat(slef):
         print("干饭了,干饭了,~~~~~~")

    def study(self,info:str):
        print(f"努力学习:{info}")     

    def show_me(self):
       return f"我叫{self.name},我喜欢:{self.hobby}"    

p1=Person("Nickel") 
print(p1.hobby)
print(p1.name)
p1.eat()
p1.study("Java")
print(p1.show_me())

在这里插入图片描述

1.2.7 模块的使用

1.模块的简单使用
import random # 随机函数的使用
print(random.randint(1,100))

from random import randint  #form函数使用
print(randint(1,100))

import math  #导入数学函数
print(math.sqrt(9))

import time #导入休眠效果
time.sleep(2)
print("我现在可以打印了")

from time import sleep as s #取别名
s(2)
print("我又可以打印了")

在这里插入图片描述

2.模块的高级使用

model1

#自定义方法
def test1(a:int,b:int):
    return print(a+b)


if __name__== '__main__':
    test1(1,2)

方法的引用

from  model1 import test1
test1(73,25)
3.模块的工具的下载和使用
# pip install

#pip list

#pip uninstall

#Ctrl +~ window 

#pip install matplotlib #绘画图表的工具

在这里插入图片描述

from matplotlib import pyplot as plt

plt.plot([1,2,8,5,6,2])
plt.show()

在这里插入图片描述
本地配置数据源的方法
1.在当前用户下建立pip文件夹
在这里插入图片描述
2.在pip文件夹下新建一个pip.ini文件

[global]
timeout=6000
index-url=https://pypi.tuna.tsinghua.edu.cn/simgle
trusted-host=pypi.tuna.tsinghia.edu.cn

1.3.python对文件的相关操作

1.3.1 获取相关的路径

# 相对路径

#绝对路径

import os

print(os.getcwd()) #获取当前工作目录
print(os.path.abspath("model1.py")) #获取文件的绝对路径
print(os.path.dirname("E:\Study\pythonCode\model1.py")) #获取文件所在的文件夹
print(os.path.dirname(r"\aaaaa\model1.py")) #获取上一层文件夹的位置

print(os.path.exists("E:\Study\pythonCode")) # true
print(os.path.exists(r"E:\Study\aaaaa")) #false


#分离最后一个文件和前面文件
print(os.path.split("E:\Study\pythonCode\model1.py")) #('E:\\Study\\pythonCode', 'model1.py')
print(os.path.split(r"E:\Study\aaaa")) ##('E:\\Study', 'aaaa')
print(os.path.splitext("E:\Study\pythonCode\model1.py")) #E:\Study\pythonCode\model1.py
print(os.path.splitext("E:\Study\pythonCode\model1.py")[1]) #.py

#判断是不是文件
print(os.path.isfile("E:\Study\pythonCode\model1.py")) #True
print(os.path.isfile("model1.py")) #True
print(os.path.isfile("E:\Study\pythonCode"))  #False

#判断是不是文件夹
print(os.path.isdir("model1.py")) #False
print(os.path.isdir("E:\Study\pythonCode"))  #True

#获取当前文件夹有什么文件
print(os.listdir("."))

1.3.2 文件和文件夹的操作

#创建文件夹和删除文件夹
import os
#os.makedirs("temp")  #创建文件夹
# os.rmdir("temp") #删除文件夹

#创建文件
# f=open("aaa.py","w")  #write
# f.write('Hello Python\n')
# f.write('abc\n')
# f.write("132\n")
# f.close()

# f=open("aaa.py","a")  #append
# f.write('Hello Python 2\n')
# f.write('abc 2\n')
# f.write("132 2\n")
# f.close()

# with open("aaa.py","a") as f:  #自动关闭流
#     f.write('Hello Python 3\n')
#     f.write('abc 3\n')
#     f.write("132 3\n")


#读取内容
# with open("aaa.py","r") as f:    
#     #print( f.read()) #读取指定字节内容
#     #print(f.readline()) #读取第一行 Hello Python
#     print(f.readlines()) #读取所有行的数据  ['Hello Python\n', 'abc\n', '132\n', 'Hello Python 2\n', 'abc 2\n', '132 2\n', 'Hello Python 3\n', 'abc 3\n', '132 3\n']


#读取图片文件
# with open("1.jpg","rb") as f: #byte
#     print(f.read())

#图片的赋值
f1=open("1.jpg",'rb')
f2=open("img.jpg","wb")
f2.write(f1.read())
f2.close()
f1.close()

1.4 python对EXCEL的相关操作

表示当前版本没有EXcel
在这里插入图片描述
**更改pip.ini文件

[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
use-mirrors = true
mirrors = https://pypi.tuna.tsinghua.edu.cn

参考:https://blog.csdn.net/qq_41937076/article/details/88321759

1.4.1 下载Excel插件

pip install openpyxl

1.4.2 获取Excel的数据

from openpyxl import load_workbook
from openpyxl.workbook import workbook

#打开excel
def open():
    wb=load_workbook("./DATA/2.xlsx")

    sh1=wb.active
    sh2=wb['Sheet1']
    print(sh1==sh2)

#获取excel的名字
def show_sheets(excel_name:str):
    wb=load_workbook(f"./DATA/{excel_name}")
    names=wb.sheetnames
    print(names)

#获取某个单元格的值:方法1
def  get_one_value(excelName:str,c1:int,c2:int):
    wb=load_workbook(f"./DATA/{excelName}")
    sh=wb.active
    name=sh.cell(c1,c2).value
    print(name)

#获取某个单元格的值:方法2
def  get_one_value2(excelName:str,location:str):
    wb=load_workbook(f"./DATA/{excelName}")
    sh=wb.active
    name=sh[f"{location}"].value
    print(name)    

#获取某个范围内的数据
def get_range_value(excelName:str,range:str):   
    values=[]
    wb=load_workbook(f"./DATA/{excelName}")
    sh=wb.active 
    rangeSheet=sh[f"{range}"]
    #print(rangeSheet)
    for a in rangeSheet:
       for d in a:
           values.append(d.value)
    print(values)    


#获取所有的行数据
def get_all_values(excelName:str,):
   values=[]
   wb=load_workbook(f"./DATA/{excelName}")
   sh=wb.active
   for data in sh:
       for d in data:
           values.append(d.value)
   print(values)       

#open()    
#show_sheets("2.xlsx")
#get_one_value("2.xlsx",1,1)
#get_one_value2("2.xlsx","A1")
#get_range_value("2.xlsx","A1:B2")
get_all_values("2.xlsx")

1.4.3Excel的数据的拆分

拆分前
在这里插入图片描述
拆分后
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

from openpyxl import load_workbook

wb=load_workbook('./DATA/all_vidio.xlsx')
sh=wb.active

data1=[]
data2=[]

for row in sh.rows:
     print(type(row[3].value))
     print(row[3].value)
     num=row[3].value
     if num>50:
         data1.append(row)
     else:
         data2.append(row)   

data1_sh=wb.create_sheet("大于50w")
data2_sh=wb.create_sheet("小于50w")         

for d in data1:
    temp_list=[]
    for temp in d:
        temp_list.append(temp.value)
    data1_sh.append(temp_list)  

for d in data2:
    temp_list=[]
    for temp in d:
        temp_list.append(temp.value)
    data2_sh.append(temp_list)       

wb.save("./CREATED/text.xlsx")     
  

1.4.4Excel的数据的合并

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#操作excel
from openpyxl import load_workbook
from openpyxl.workbook.workbook import Workbook
#打开excel
wb=load_workbook("./DATA/text.xlsx")
#激活多个sheet
sh1=wb['大于50w']
sh2=wb['小于50w']

all=[]  #存储所有的数据
#读取数据
for row in sh1.rows:  #获取所有行
    temp_list=[]   #获取所有行
    for cell in row:  #获取所有列
        print(cell.value)  #获取单元格的值
        temp_list.append(cell.value)
    all.append(temp_list)    #整合所有数据

for row in sh2.rows:  #获取所有行
    temp_list=[]   #获取所有行
    for cell in row:  #获取所有列
        print(cell.value)  #获取单元格的值
        temp_list.append(cell.value)
    all.append(temp_list)      #整合所有数据     
  #合并几个就读几个


#保存所有数据
wb=Workbook()
sh=wb.active
for row in all:
    sh.append(row)

wb.save('./CREATED/test5.xlsx')

1.4.5 多个Excel的文件合并成为一个文件

文件合并之前
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件合并之后
在这里插入图片描述
在这里插入图片描述
代码

#引入包
from openpyxl import load_workbook
from openpyxl.workbook.workbook import Workbook
#打开excel《合并几个代开几个》
wb1=load_workbook("./DATA/video1.xlsx")
wb2=load_workbook("./DATA/video2.xlsx")
wb3=load_workbook("./DATA/video3.xlsx")
wb4=load_workbook("./DATA/video4.xlsx")
#激活工作薄
sh1=wb1["Sheet1"] # sh1=wb1.avtive
sh2=wb2["Sheet1"]
sh3=wb3["Sheet1"]
sh4=wb4["Sheet1"]
#定义变量存储所有数据
all=[]

#读取数据《读数据记得保存》
for row in sh1.rows:
    temp_list=[]
    for cell in row:
        temp_list.append(cell.value)
    all.append(temp_list) 

for row in sh2.rows:
    temp_list=[]
    for cell in row:
        temp_list.append(cell.value)
    all.append(temp_list) 

for row in sh3.rows:
    temp_list=[]
    for cell in row:
        temp_list.append(cell.value)
    all.append(temp_list) 

for row in sh4.rows:
    temp_list=[]
    for cell in row:
        temp_list.append(cell.value)
    all.append(temp_list) 


#保存数据
wb=Workbook()
sh=wb.active
for row in all:
    sh.append(row)
wb.save('./CREATED/video.xlsx')

1.4.6 汇总excel中的数据

汇总之前
在这里插入图片描述
汇总之后
在这里插入图片描述
汇总代码

#引包
from openpyxl import load_workbook
#打开文件
wb=load_workbook('./DATA/sale.xlsx')
#激活sheet
sh=wb.active

all=[] #获取所有单元格数据
#读取数据
for row in sh.iter_rows(min_row=2,min_col=2):
   temp_list=[]
   for cell in row:
        temp_list.append(cell.value) #获取每行数据
   all.append(temp_list)     
#汇总
all_count=[]
for row in all:
    count=0
    for n in row:
        temp=str(n) #转成字符串,判断数字问题
        if temp.isdigit(): #判断是否是数字
            count+=n

    all_count.append(count)

print(all_count)
rowMax=sh.max_row #获取最高行
colMax=sh.max_column #获取最高列
#添加汇总数据
num=2
sh.cell(1,colMax+1).value='汇总'
for val in all_count:
    sh.cell(num,colMax+1).value=val
    num+=1
#保存
wb.save("./CREATED/saleNew.xlsx")

1.4.7 python设置excel样式

设置解析

##创建excel文件
from openpyxl import Workbook
from openpyxl.styles import Font, colors,Alignment,PatternFill

wb=Workbook()
sh=wb.active


font=Font(name='黑体',size=30,color=colors.BLUE,bold=True,italic=True)
sh['B2']='hello'
sh['B2'].font=font

##设置单元格行宽和列宽
sh.row_dimensions[6].height = 30
sh.column_dimensions['C'].width = 41
sh['C6']='测试数据'
sh['C6'].alignment=Alignment(horizontal='right',vertical='center') #horizontal表示左右对齐   vertical表示上下对齐
sh['C6'].fill=PatternFill('solid','FFD39B') #设置背景颜色


wb.save('./CREATED/text8.xlsx')

设置销售文件案例

#创建销售文件
from openpyxl import Workbook
from openpyxl.styles import Font,Alignment,PatternFill,Border

wb=Workbook()
sh=wb.active

SaleDate=[
    ['月份','1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
    ['销售一组',57,149,105,51,116,131,126,148,56,53,130,86],
    ['销售二组',142,114,56,145,113,67,124,113,97,124,63,91],
    ['销售三组',62,125,76,95,118,127,100,117,121,86,131,59],
    ['销售四组',85,113,85,145,102,61,106,113,76,72,61,146],
    ['销售五组',137,100,74,103,136,71,129,121,50,88,124,126],]  

#for i in range(0,13,1):
 #  sh.cell(i+1,1).value=month[i]



for  i in range(1,6,1):
    for j in range(1,13,1):
        sh.cell(j,i).value= SaleDate[i-1][j-1]

        


for row in sh.rows:
    for cell in row:
       cell.font=Font(bold=True,color='FFFAFA')  
       cell.alignment=Alignment(horizontal='center',vertical='center')  
       cell.fill=PatternFill('solid','191970')



wb.save('./CREATED/homework1.xlsx')

1.5 经典案例

1.5.1 工资条

工资条模型

在这里插入图片描述
创建之后数据
在这里插入图片描述
在这里插入图片描述
代码

'''
工号	姓名	部门	基本工资	提成	加班工资	社保扣除	考勤扣除	应发工资	邮箱
10000	刘备	首领	8000	5000	3000	680	0	16680	398882433@qq.com
10001	关羽	将军	6000	4000	3000	680	0	13680	398882433@qq.com
10002	张飞	将军	6000	3500	5000	680	300	14880	262355@qq.com
10003	诸葛亮	军师	7000	3000	1000	680	600	11080	26565123@qq.com
10004	狗子	小兵	3000	500	1500	680	0	5680	79523231@qq.com
10005	蛋蛋	小兵	3000	400	1500	680	0	5580	566233@qq.com

'''
from openpyxl import load_workbook,Workbook

wb=load_workbook('./DATA/工资数据.xlsx')
sh=wb.active


salary=[]
title=[]
for i,rows in enumerate(sh.rows):
    salary_temp=[]
    for sheet in rows:
        salary_temp.append(sheet.value)
    if i==0:
        title=salary_temp
    else:
        wb2=Workbook()
        sh2=wb2.active
        sh2.append(title)
        sh2.append(salary_temp)
        #print(f"./CREATED/{salary_temp[0]}-{salary_temp[1]}.xlsx")
        wb2.save(f"./CREATED/{salary_temp[0]}-{salary_temp[1]}.xlsx")
   

1.5.2 加班时间统计

from openpyxl  import Workbook,load_workbook
from datetime import date

def create_data():
    wb=Workbook()
    sh=wb.active
    rows=[
        ['打卡时间','姓名','打卡时间'],
        [date(2021,12,2),'吕小布','18:50'],
        [date(2021,12,3),'张飞','18:40'],
        [date(2021,12,4),'关羽','19:50'],
        [date(2021,12,5),'吕小布','19:20'],
        [date(2021,12,6),'张飞','19:10'],
        [date(2021,12,7),'吕小布','18:30'],
        [date(2021,12,8),'关羽','18:00']
    ]
    for row in rows:
        sh.append(row)
    wb.save('./CREATED/打卡时间.xlsx')    

def totail_having_time():
    wb=load_workbook("./CREATED/打卡时间.xlsx")
    sh=wb.active
    date=[]

    for i in range(2,sh.max_row+1):
        temp_list=[]
        for j in range(1,sh.max_column+1):
             temp_list.append(sh.cell(i,j).value) #获取某个单元格数据sh.cell(i,j)
        
        #统计的操作
        h,m= temp_list[2].split(':')
        full=int(h)*60+int(m) 
        rs=full-18*60
        temp_list.append(rs)
        temp_list[0]=temp_list[0].date()
        date.append(temp_list)

    new_wb=Workbook()
    sh_new=new_wb.active
    for  row in date:
        sh_new.append(row)
    new_wb.save("./CREATED/加班时间.xlsx")    


if __name__=='__main__':
    #create_data()
    totail_having_time()

1.5.3python通过qq邮箱发送消息

发送前
在这里插入图片描述
发送后
在这里插入图片描述
代码

from email import header
import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_simple():
    #登录邮箱
   smtp_obj=smtplib.SMTP("smtp.qq.com")
   smtp_obj.login("921495759@qq.com","zgeozvmmagwabedf")
    #编写内容 
   msg="This is email~ 你要的邮件来啦~"
   msg_body=MIMEText(msg,'plain','utf-8')
   msg_body['Subject']=Header('测试邮件','utf-8')
   msg_body['From']=Header('测试部门','utf-8')
    #发送
   smtp_obj.sendmail('921495759@qq.com',['1665340048@qq.com'],msg_body.as_string())


def send_simple1():
    #登录邮箱
   smtp_obj=smtplib.SMTP("smtp.qq.com")
   smtp_obj.login("921495759@qq.com","zgeozvmmagwabedf")
    #编写内容 
   msg='''This is email~ 你要的邮件来啦
     <h1>这是一个邮件</h1>
     <p>测试一个邮件内容,内容是由HTML编写的</p>
     <p><a href='http://www.baidu.com'>官网</a></P>
   '''
   msg_body=MIMEText(msg,'html','utf-8')
   msg_body['Subject']=Header('测试邮件','utf-8')
   msg_body['From']=Header('测试部门','utf-8')
    #发送
   smtp_obj.sendmail('921495759@qq.com',['1665340048@qq.com'],msg_body.as_string())

#send_simple()
send_simple1()

1.5.4python发送工资数据

在这里插入图片描述
在这里插入图片描述

'''
工号	姓名	部门	基本工资	提成	加班工资	社保扣除	考勤扣除	应发工资	邮箱
10000	刘备	首领	8000	   5000	     3000	    680	       0	    16680	  398882433@qq.com
10001	关羽	将军	6000	   4000     	3000	680	       0	    13680	398882433@qq.com
10002	张飞	将军	6000	   3500	     5000	    680	      300	    14880	262355@qq.com
10003	诸葛亮	军师	7000	    3000	  1000	   680	      600	    11080	26565123@qq.com
10004	狗子	小兵	3000	    500	     1500	  680	       0	    5680	79523231@qq.com
10005	蛋蛋	小兵	3000	    400	    1500	   680	       0	    5680	566233@qq.com

'''
#读取数据
from email import header
from openpyxl import load_workbook


#发送邮件
from email.mime.text import MIMEText
from email.header import Header
import smtplib

wb=load_workbook("./DATA/工资数据.xlsx")
sh=wb.active

title="<tr>"  
for i,row in enumerate(sh.rows):
    if i==0:
      for cell in row:
         title+=f'<td>{cell.value}</td>'
      title+="</tr>" 
    else:
      info="<tr>"  
      for cell in row:
          info+=f'<td>{cell.value}</td>'
      info+="</tr>"   
      
      name=row[i].value
      msg=f'''
        <h3>你好:{name}</h3>
        <p>请查收本月工资信息详情</p>
        <table border="1">
            {title}
            {info}
        </table>
      '''

      msg_body=MIMEText(msg,"html","utf-8")
      msg_body['From']=Header('首钢佩奇有限公司人事部','utf-8')
      msg_body['Subject']=Header("钢佩奇有限公司工资条",'utf-8')

      smtp_obj=smtplib.SMTP('smtp.qq.com')
      smtp_obj.login('921495759@qq.com','zgeozvmmagwabedf')
      smtp_obj.sendmail('921495759@qq.com',['1665340048@qq.com'],msg_body.as_string())

      print(f'成功发送工资条,{name}')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值