栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

目录

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爱吃猫的鱼Desktoptest.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:report2021-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     FilesPycharmProjectspythonCodeuntitled4testcasebbccerror.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()

    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号