python之文件路径与异常处理
一、文件路径
1、__file__:指当前文件的路径
2、os.path.abspath/os.path.realpath:获取绝对路径
os.path.abspath(__file__):获取当前文件的绝对路径
3、os.path.dirname:获取父目录路径
os.path.dirname(__file__):获取当前文件路径的父目录路径
4、os.path.join(path1[, path2[, ...]]):拼接路径,拼接路径只能一级一级的拼接
5、os.mkdir(path):在指定的路径下创建目录
6、os.rmdir(path):删除目录
7、os.path.exits(path):指定path是否存在,输出bool,如果path存在,返回True;如果path不存在,返回False
8、os.path.isfile(path):指定path是否为file,输出bool,如果path为file,返回True,如果path不为file,返回False
9、os.path.isdir(path):指定path是否为目录,输出bool,如果path为目录,返回True,如果path不为目录,返回False
10、os.path.split(path):将path分割成目录和文件名二元组返回。
11、os.path.basename(path):获取文件名
黑色加粗的是比较常用的
二、异常处理
1、异常:python异常就是python程序运行的过程中发生的错误
2、异常处理的作用:发生异常程序会终止运行,所以异常处理的作用就是防止程序的终止,让程序正常运行
3、异常捕获以及处理
1)
try:
...未发生异常时运行的代码...
except:
...发生异常,捕获成功后运行的代码...
2) Exception为万能异常基类,当捕获指定基类异常的时候尽量不要使用万能异常基类,异常一个一个去捕获会要好些
try:
...
except Exception as e: # 此处e是别名,可打印出异常的具体信息。
print(e)
3)可捕获多个异常,进行处理,try语句中,可有多个except,但每次try语句运行后发出错误只能捕获到一个指定的异常,因为python语句运行是从上往下运行的。
try:
...
except NameError:
...
except ValueError:
...
4)try...except...finally
try:下面放需要监控的代码
except:处理捕捉到的错误异常
finally:不管try下面的代码是否会遇到异常,finally下面的代码一定会执行
5)try...except...else
try:下面放需要监控的代码
except:处理捕捉到的错误异常
else:如果try下面的代码没有发生异常,那么就继续执行else下面的代码,否则就不执行
4、异常基类
1)Exception:万能异常基类,常规异常基类
2)NameError:未定义变量
3)ValueError:传入的参数有误,虽然参数符合,但是参数的值却是不想要的,比如int("a")
4)TypeError:数据类型错误,如:"a" + 1 传入的是字符串,或者int,类型不符合要求
5)KeyError:映射关系中没有这个key
6)IndexError:索引不存在
7)IOError:输入输出错误
8)SyntaxError:python语法错误,不能被try捕获到
9)ZeroDivisionError:除(或取模)零(所有数据类型)
10) AssertionError:断言语句失败
11)ImportError:导入模块/对象失败
12)AttributeError:对象没有这个属性
5、异常的抛出:raise 将错误往上抛,相当于自首,raise的作用就是把异常处理中的错误抛出来,让我们看到traceback信息,一般都是在我们处理完异常信息后,我们可以把错误抛出,在后期的单元测试中生成测试报告用的比较多
raise ValueError("数据类型错误!")
6、分组捕获
1)异常也是可以分组的,因为异常也分等级,分组进行处理(bug等级)
2)try...except (异常类型1,异常类型2) as err:将异常类型1和异常类型2看做是同一个等级的异常(如都是致命的异常/严重的异常),进行相同处理