(六) 学习笔记:python异常处理和os模块常用函数总结

异常处理

当程序遇到问题的时候, 为了不让程序停止或者直接报错, 跳过错误继续向下执行, 一般情况下, 在Python无法正常处理程序时就会发生一个异常。
主体结构:

try:
    code  # 可能出现的异常的代码块
except:     # 只要出现错误就会走except 捕获所有错误
    code  # 处理异常
(1) 捕获特定错误的代码段

实例:

try:
  可能出现异常的代码块
except NameError:  # 捕获NameError错误
  处理异常
(2) 多重捕获

会进行多次判断, 如果是对应某一个错误expect就会执行, 如果都没有满足走最后一个expect
实例:

try:
  # name = 1   # 注释掉
  print(name)  
expect NameError:    # 当注释掉name时候,会走上面的expect
  print('报NameError错误')
except ValueError:
  print('报ValueError 错误')
except (NameError, ValueError):  # 可以写成元组的形式, 捕获多个错误
  print('报错了')
except (NameError, ValueError) as e:  # 可以将错误信息打印出来
  print('报错了')
  print(e)  # name 'name' is not defined
  print(type(e)) # 
except:
  print('报错')

注意: 如果代码出现多个错误, 只会抓捕第一个对应的错误

(3) 配合else的使用

当代码执行完try没有错误的时候会走else
实例:

try:
  pass
expect:
  pass
else:
  当代码没有出现错误的时候, 走这里, 可以用来处理一些打开的连接和资源
(4) finally的使用

无论代码是否出现异常都会走finally
实例:

try:
  pass
expect:
  pass
else:
  pass
finally:  # 都会执行这里
  print('over')
(5) 使用raise关键字抛出异常
# 格式
raise 错误(错误说明)
# 实例
raise NameError(‘not found’)

断言(assert)

assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达式为假。
用法:

assert condition   
# 上面的写法等同于
if not expression: 
      raise AssertionError

实例:

assert 1!=1 
assert 2+2==2*2 
assert range(4)==[0,1,2,3]

os模块常用函数总结

函数名 函数说明
os.name 获取当前操作系统的类型, nt->windows, posix->linux,mac
os.environ 获取当前操作系统的所有环境变量
os.getcwd() 获取当前的工作路径
os.listdir(path) 以列表的形式返回目录的文件
os.mkdir(path) 创建新目录, 如果文件存在则报错
os.rmdir(path) 删除空目录, 如果找不到目录报错
os.rename(src, dst) 重命名
os.remove(filename) 删除文件
os.system(cmd) 执行shell命令
os.path.join(dir, filename) 拼凑完整路径
os.path.isdir(path) 判断是否为目录
os.path.isfile(path) 判断是否为文件
os.path.splitext(path) 获取文件的后缀名(例如a.txt中的.txt), 返回元组
os.path.exists(path) 判断文件或路径是否存在
os.path.getSize(path) 获取文件的字节数
os.path.dirname(path) 获取目录名称
os.path.absolate(path) 获取当前文件的绝对路径
os.path.split(path) 拆分路径(将路径和文件名拆分) 返回元组形式

你可能感兴趣的:((六) 学习笔记:python异常处理和os模块常用函数总结)