Python操作文件、excel表及Zmail发送文件

目录

txt函数:

xlsx函数:

Zmail    邮件操作:

1. 发送邮件

2. Zmail 中得到最新的发送邮件


txt函数:


    open(r"文件名",mode="w",encoding='utf-8')        
        mode:w覆盖写a追加r读r+以读写方式打开w+a+
    read    读取文件
    close    关闭文件
    readline    读取一行
    write    写文件
    with open(r" 文件名 ",mode=' 打开方式 ') as 变量名:    以*方式打开文件名,赋值给变量名。这种方式打开,之后不用手动关闭,它自动会调close方法
readline例子:
    f=open(r"C:\Users\爱吃猫的鱼\Desktop\学习笔记\python笔记.txt")
    while True:
            c = f.readline()
            if not c:        # 如果c为空
                    break
            print(c,end='')
    f.close()

导入openpyxl库(用于操作excel等)
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/

xlsx函数:


    import openpyxl
    workbook=openpyxl.Workbook()        ①新建一个工作簿
    workbook.save(r'地址\文件名')            ②保存到
    workbook2=openpyxl.load_workbook(r'地址\文件名')        打开工作簿,返回一个工作簿对象
    workbook2.active                返回最活跃的工作表对象
    b=workbook2.worksheets            返回工作簿内所有工作簿,返回为列表
    sheet=workbook2.remove(工作表)            删除工作表,返回值为None
    sheet02=workbook2['Sheet']            ①workbook2工作簿内Sheet表
    s=sheet02.cell(3,1).value            ②返回Sheet表中3行1列的值,给s
    sheet02['A3'].value                ②返回Sheet表中A列3行的值
    工作表.max_row                获取工作表内最大行号
    工作表.min_row                获取工作表内最小行号
    工作表.max_column                获取工作表内最大列号
    工作表.min_column                获取工作表内最小列号
    工作表.cell([row=]max_r+1,[column=]i).value=val[i-1]    ①工作表内max_r+1行i列的值赋为
    工作簿.save(r"C:\Users\爱吃猫的鱼\Desktop\test.xlsx")    ②保存更改的值到指定地址
    a=workbook["Sheet"]            ①把workbook工作簿的Sheet工作表给a
    s=workbook.copy_worksheet(a)        ②把workbook工作簿的Sheet工作表内容复制给s
    s.title="one1"                ③给s重新取名为one1
    workbook.save(t)                ④保存到t地址
    
例子:
max_c=sheet02.max_column
max_r=sheet02.max_row        
for i in range(max_c):        # 打印一行值,第三行。i下标从0开始,到max_c减一
    s = sheet02.cell(3,i+1).value
    print(s)
for j in range(1,max_r+1):        # 打印一列值,打印第一列
    s=sheet02.cell(j,1).value
    print(s)

sheet02.cell(1,2).value=33        # 把第一行第二的值符为33


Zmail    邮件操作:

一.Zmail模块
发送邮件,主要用在发送测试报告,日志信息
发送邮件可以指定发送人,收件人,发送内容和附件
优势:
1. 自动填充大多数导致服务端拒信的头信息(From To LocalHost之类的)
2. 将一个字典映射为email,构造信件就像构造字典一样简单
3. 自动寻找邮件服务商端口号地址,自动选择合适的协议,但是也只能用于python3
1. 安装方法
直接import zmail 直接操作安装即可

1. 发送邮件


(1). 普通发送多个账号邮件
   mail_content={
    'subject':'自动化测试报告!',#邮箱标题随便填写
    'headers':‘邮件正文描述’,#邮箱正文内容,随便填写
    'attachments':r'D:\test.txt' #给邮件添加附件 ,要记得转义字符
    }

#使用你的邮箱账号名和邮箱的SMTP密码,这个需要申请一个 
server = zmail.server('my1234@qq.com','mypassword')
#发送给多个账号
server.send_mail(['12341234@qq.com', '23452345@qq.com'], mail_content)

(2). 某个文件的内容读出来放到正文内容中进行发送
server = zmail.server('527361838@qq.com', 'ocnywbibakgvbjbd')
#读取html文件的内容
with open(r'D:\report\2021-04-28 20_07_43result.html','r',encoding='utf-8') as f:
    content_html = f.read()
    mail_content={
        'subject':'自动化测试结果', #测试标题
#将内容作为正文内容进行发送
        'headers':content_html,#发送的文件内容
        #发送附件
        'attachments':r'D:\Program     Files\PycharmProjects\pythonCode\untitled4\testcase\bb\cc\error.png'
            }
    # 发送邮件,要发送的邮箱账户,内容
    server.send_mail('12341234@qq.com',mail_content)


2. Zmail 中得到最新的发送邮件


import zmail
#登陆
server = zmail.server('my1234@qq.com', 'mypassword') mail = server.get_latest()
zmail.show(mail)


按照ID获取邮件内容
mail =server.get_mail(1)
zmail.show(mail)

二.Sendmail
优势都支持
1.    安装
import smtplib
from email.mime.text import MIMEText

2.    发送邮件
#传入一个要读取的文件内容
def send_mail(file_new):
    #发信邮箱
    mail_from='my1234@qq.com'
    #收信邮箱
    mail_to='12341234@qq.com'
    #定义正文,从哪个路径读取文件
    f = open(file_new, 'rb')
    mail_body = f.read()
    f.close()
    msg=MIMEText(mail_body,_subtype='html',_charset='utf-8')
    #定义标题
    msg['Subject']=u"自动化测试报告" #定义发送时间(不定义的可能有的邮件客户端会不显示发送时间)
    msg['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z')
    smtp=smtplib.SMTP()
    #连接 SMTP 服务器,此处用的 QQ 的 SMTP 服务器
    smtp.connect('smtp.qq.com')
    #用户名和qq的smtp密码
    smtp.login('my1234@qq.com','mypassword')
    smtp.sendmail(mail_from,mail_to,msg.as_string())
    smtp.quit()

    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值