python之文件路径与异常处理

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看做是同一个等级的异常(如都是致命的异常/严重的异常),进行相同处理

本文来自博客园,作者:%女王%,转载请注明原文链接:https://www.cnblogs.com/lynne-wu/p/14184043.html

原文地址:https://www.cnblogs.com/lynne-wu/p/14184043.html