python之os模块和异常捕获语法格式

一,简单介绍下os模块常用得操作(自动化测试中)

其实在自动化中,应用到os模块的地方不多,而且常用的就几个。

 __file__ ,在os模块中应用时表示为当前的文件名

1--  获取当前文件的绝对路径:

os.path.abspath(__file__)

2--  获取当前文件(文件夹)所在的目录

os.path.dirname() -- 括号里面的参数必须是一个绝对路径

3-- 路径拼接:

os.path.join()-- 通过上面两个方法可以获取得到项目目录后,与另一个文件进行拼接,得到该文件的绝对路径

 

还想学习更多关于os模块的应用,可以再次扩展

下面为,在接口自动化测试框架中对路径的处理:

import os

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 得到当前文件下得项目路径,方便后续与各种文件的路径拼接

# 测试用例路径
cases_dir = os.path.join(base_dir, "TestCases")
# 测试数据大的路径
datas_dir = os.path.join(base_dir, "TestDatas")

# 测试报告路径
reports_dir = os.path.join(base_dir, r"Outputs\reports")  # r表示转义字符

# 日志的路径
logs_dir = os.path.join(base_dir, r"Outputs\logs")

# 配置文件的路径
conf_dir = os.path.join(base_dir, "Conf")

二,异常捕获的常用语法

在工作中调试代码出现报错,首先先自己去尝试理解报错内容,如果英文不懂,则翻译

找到自己写的代码中的第几行出错了,再去尝试修复报错

 

一、常见代码异常

1、变量没定义:NameError

2、语法错误:SyntaxError

3、键不存在:KeyError

4、没找到模块:ModuleNotFoundError

5、类型错误:TypeError

下面来介绍异常捕获。

什么时候需要捕获异常呢?

其实有几个比较标准的运用场景,

二,与第三方资源交互的时候,一定要处理异常

资源的释放问题,例如,http连接,数据库的连接,excel操作

异常捕获的常用语法:

try:
    可能会出错的代码
except: (如果出错,进入except)
    捕获异常
    代码报错后执行的代码
    raise(抛出异常)
else:
    try里面的代码没报错时,执行大的代码
finally:
    无论是否出现异常,一定会执行的代码

 

eg:

# 如果文件打开成功,则接着写入数据。
try:
    fs = open(r"D:\Pychram-Workspace\py30\python练习.txt","r",encoding="utf-8")
    # fs.write("成功写入")
except:  # 捕获异常
    print("代码出错了!!")  # 我做了我自己的事情。输出了一些内容。
    raise  # 会把异常信息抛出。让python接收到
else:
    fs.write("成功写入")
finally:
    print("一定会执行的代码!!")
    try:
        fs.close()  # 清理收尾工作。无论成功还是失败都会执行的代码。
    except:
        pass  # 如果fs.close()失败了,不用处理。直接忽略异常。

还有另一种写法:

try:
    代码
except 异常名字:
    处理代码
except 异常名字:
    处理代码
except 异常名字:
    处理代码
except Exception as e:  # 其中Exception为所有异常的基类,当你不知道为啥类型错误时,写这个就ok

   print(e)  

   pass 
其中raise和print(Exception)的区别就是raise打印出来的报错信息更加详细

简单的练习题:

def get_money():
    try:
        price = float(input("请输入橘子的价格: "))
        weight = float(input("请输入橘子的重量:"))
    except:
        print("请输入正确的数据类型")
        raise
    else:
        money = price * weight
        print("您购买的橘子的金额为:{}".format(money))
    finally:
        print("欢迎下次光临")


get_money()

后续在ui自动化中会比较经常用到,后续踩坑补充,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值