打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
极简python教程04:文件读写和异常处理



大家好,我是测试奇谭的作者风风。

讲解之前,我先说说我的教程和网上其他教程的区别:

1 我分享的是我在工作中高频使用的场景,是精华内容

2 你可以敲代码学习,效果最佳;亦可以收藏,待有需求时粘来即用

本教程其他内容,可以滑到最下面翻看~

这一场,主讲python的文件读写和异常处理

目的:通过场景法讲解,掌握初学必须的文件读写和异常处理书写语句。

文件读写

先针对初学者。怎么理解它?

先讲场景:你的电脑桌面有一张xls表格,你需要用excel办公软件打开它,阅读里面的内容(读),当发现内容有问题时,你会修改表格数据(写)。这一操作,叫excel软件的读写,并且,在工作中,它是一个高频操作。

以此类推,python的文件读取,说白了就是用python软件去打开文件,去修改文件。

初学者怎么学?

掌握语法即可。

infile.readline()  #readline()方法读取下一行,以读取\n结束的一行infile.readlines()  #readlines()方法读取所有行并放入一个字符串列表中outfile.write("Sun\n")
with open('test.txt', "w") as f: f.truncate() # 清空数据 f.write('aaaaa') # 写数据
with open('test.txt', "r") as f: print(f.readline()) # 读数数据
open中的第二个参数:   r 为了读取打开一个文件w 为了写入打开一个文件,如果文件以及存在,它的内容就会被销毁a 打开一个文件从文件末尾追加数据rb 为读取二进制数据打开文件wb 为写入二进制数据打开文件

再针对已入门者。做自动化测试,有哪些应用场景?

  • 程序依赖不同的配置,需要通过读写ini或者yaml等配置文件;

  • 程序未规划好全局参数,需要临时储存数据,以备后续使用时;

  • 程序运行中的日志,运行后的报告、数据等的写入和读取;

  • 若是数据驱动型自动化测试,对存储数据的文件(json、db等各种形式)进行读取和写入

  • ……

所以说,这是必须要掌握,也是重点掌握内容。

以风风做自动化测试的经验,一个好的文件类(方法)的封装,会大幅度提高你的编码效率,同时,对于测试框架来说,是对框架迁移能力和兼容强度的考验。比如要将接口自动化代码单独拉一套出来,组装成UI自动化代码)

异常处理

先针对初学者。怎么理解它?

场景:某天你刷抖音正嗨,突然“”一声响,屏幕弹出一个弹窗:您的电量低于20%,请及时充电。

当电量低于20%时,手机会提示你。以此类推,当你的程序需要对一些异常处理,比如给出提示or报警or中止……总之,用合适的办法弄它。

初学者怎么学?

其实,异常处理用得相对较少,毕竟,自动化测试要求不高,针对空指针、没有抓住异常等行为,项目团队的容忍性还是比较大的。

但是,你能不做吗?

当然是要做。

所以,别想偷懒啦。

try:    <body>     # 包含了可能抛出异常的代码,当一个异常出现时,<body>中剩余代码被跳过。如果该异常匹配一个异常类型,那么该类型下的处理代码将被执行。except <ExceptionType1>:    <Handler1>   # 是处理异常的代码。    ……except <ExceptionTypeN>:    <HandlerN>except:    <handleExcept>else:    <process_else>finally:    <process_finally>
1、首先,tryexcept之间的语句(即body)被执行。2、如果没有异常出现,跳过except子句。3、如果在执行try子句时出现异常,子句的剩余部分将会被跳过。4、当一个异常出现时,如果异常类型匹配关键字except之后的异常名,那么这个except子句被执行,然后继续执行try语句之后的语句。5、如果一个异常出现但是异常类型不匹配except子句中的异常名,那么这个异常被传递给这个函数的调用者;如果没有找到处理该异常的处理器,那么这是一个未处理异常且终止程序显示错误信息6、多个except语句与elif语句类似7、一个try语句可以有一个可选择的finally块,用来定义收尾动作,无论何种情况都会执行这个块。finally的执行,会在tryreturn之前执行,故实际应用中,不推荐在finally中使用return返回,否则,无论如何,都是finally中的被返回。

再举个实际的例子:

def main():    try:        number1, number2 = eval(input("分别输入两个数字(用逗号隔开):"))        result = number1 / number2        print("它们的商是:", result)    except ZeroDivisionError:        print("除以0,错误!")    except SyntaxError:        print("数字间未输入逗号!")    except:        print("输入出错了!")    else:        print("没有错误!")    finally:        print("已执行完!")
main()

解析例子:

try:    <statements>            # main actionexcept <name1>:             # 当try中发生name1的异常时处理    <statements> except (name2, name3):      # 当try中发生name2或name3中的某一个异常的时候处理    <statements>except <name4> as <data>:   # 当try中发生name4的异常时处理,并获取对应实例    <statements>except:                     # 其他异常发生时处理    <statements>else:                       # 没有异常发生时处理    <statements>finally:                    # 不管有没有异常发生都会处理    <statements>

一如既往,做个总结

01 文件读写重要且必须,掌握语法(上下文管理器式的写法),很简单;

02 异常处理你看着办,初学可以跳过,但知识要储备,到用时可以立即上手。


错过精彩内容?

上下滑动阅览

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python入门教程——异常处理
Python 异常处理 | 菜鸟教程
Python入门学习之异常处理机制
python的try语句
44种Python中常见的标准异常总结及异常处理
Python3 错误和异常 | 菜鸟教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服