zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Spring 中出现Element : property Bean definitions can have zero or more properties. Property elements correspond to JavaBean setter methods exposed by the bean classes. Spring supports primitives, refer
    java定时器schedule和scheduleAtFixedRate区别
    hql语句中的select字句和from 字句
    使用maven搭建hibernate的pom文件配置
    Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ maven2 was cached in the local repository, resolution will not be reattempted until the update interv
    对于文件File类型中的目录分隔符
    hibernate的事务管理和session对象的详解
    解决mac 中的myeclipse控制台中文乱码问题
    ibatis selectKey用法问题
    Java中getResourceAsStream的用法
  • 原文地址:https://www.cnblogs.com/lynne-wu/p/14184043.html
Copyright © 2011-2022 走看看