上海网站开发与设,湖南省网站设计公司,网站建设需要几个阶段,网站是如何优化的目录 OS模块
目录的具体操作
什么是异常
异常常见处理方式
异常分类#xff1a;
捕获一个指定异常
捕获多个异常
捕获所有异常
异常具有传递性 OS模块
在Python中#xff0c;os模块的常用函数分为两类#xff1a;
#xff08;a#xff09;通过os.path调用的函数…目录 OS模块
目录的具体操作
什么是异常
异常常见处理方式
异常分类
捕获一个指定异常
捕获多个异常
捕获所有异常
异常具有传递性 OS模块
在Python中os模块的常用函数分为两类
a通过os.path调用的函数
b通过os直接调用的函数
在Python的os模块中通过os.path常用函数
函数名含义exists(pathname)用来检验给出的路径是否存在。isfile(pathname)用来检验给出的路径是否是一个文件。isdir(pathname)用来检验给出的路径是否是一个目录。abspath(pathname)获得绝对路径。join(pathname,name)连接目录与文件名或目录。basename(pathname)返回单独的文件名。dirname(pathname)返回文件路径。
说明
上述常用函数需要使用os.path来进行调用。
import os# 定义变量
path ./data/file/hello.txt
# 是否存在
print(os.path.exists(path))
# 是否是文件
print(os.path.isfile(path))
# 目录
print(os.path.isdir(path)) # False
# 绝对路径
print(os.path.abspath(path))
# 单独文件名
print(os.path.basename(path))
目录的具体操作
在Python的os模块中可直接通过os调用的常用函数
函数名含义getcwd()获得当前工作目录即当前Python脚本工作的目录路径。system(name)运行shell命令。listdir(path)返回指定目录下的所有文件和目录名即获取文件或目录列表。mkdir(path)创建单个目录。makedirs(path)创建多级目录。remove(path)删除一个文件。rmdir(path)删除一个目录。rename(old, new)重命名文件。
说明
上述常用函数可直接使用os来进行调用。
import os# 1.获取目录
path os.getcwd()
print(path)# 2.获取文件或列表信息
path_name ./data/file
dir_lists os.listdir(path_name)
print(dir_lists)# 3.新建目录
# 问题: 当目录不存在时,才需要创建; 已存在, 则不创建
new_path_name ./data/file/hello/world/python
if not os.path.exists(new_path_name): # 逻辑# 创建os.makedirs(new_path_name)print(已创建成功!!!)
什么是异常
异常指的是Python程序发生的不正常事件。
有时候异常可称为错误。
当检测到一个错误时Python解释器就无法继续执行反而出现了一些错误的提示这就是异常也就是我们常说的BUG。
# 1.正常
print(Hello1)
print(Hello2)
# 2.异常处理
try:datas [1,2,3]print(datas[100]) # 崩溃
except:pass
print(Hello3)
print(Hello4)
异常常见处理方式
异常处理语法
try:可能发生异常的代码
except:如果出现异常时, 执行的代码
说明
try、except都是关键字用于处理异常。
# 1.制造异常
# 2.处理
try:datas [1,2,3]print(datas[100]) # 中断
except:print(已经发生了异常》。。)
print(11111111111111) # 当处理了异常后,程序可以稳定继续往后执行代码
异常分类
捕获异常是处理异常的标准形式。通常情况下捕获异常分为三类
1捕获一个指定异常
2捕获多个异常
3捕获所有异常
捕获一个指定异常
来看看捕获一个指定异常的语法
try:可能发生异常的代码
except 异常类型名:当捕获到该异常类型时执行的代码
捕获多个异常
捕获多个异常指的是可以对一段可能发生异常的代码做多个异常类型的判断处理。
try:可能发生异常的代码
except (异常类型1,类型2,...):如果捕获到该异常类型时,执行的代码
# 1.可能发生异常的代码
try:dicts {}print(dicts[name])data [1,2,3]print(data[100])
# 2.处理异常
except IndexError as error:print(f可能会发生异常.{error})
except KeyError:print(可能会发生keyerror...)print(11111111111111)# 升级
try:dicts {}print(dicts[name])data [1,2,3]print(data[100])# 2.处理异常
except (IndexError,KeyError) as error:print(f可能会发生异常.{error})
捕获所有异常
要知道的是Exception是表示所有程序异常类的父类即使用Exception可以表示一切异常。
捕获所有异常语法
try:可能发生异常的代码
except Exception[ as 变量]:当捕获到该异常类型时执行的代码
说明
Exception的首字母要大写。
# 1.可能会发生异常的代码
# 2.捕获所有异常
try:data [1, 2, 3]print(data[100])dicts {}print(dicts[name])
except Exception as error:print(f发生了异常信息...{error})
print(hello world..)# 1.可能会发生异常的代码
# 2.捕获所有异常
try:data [1, 2, 3]print(data[100])dicts {}print(dicts[name])
except Exception as error:print(f发生了异常信息...{error})
print(hello world..)
在捕获异常过程中有两个关键字else、finally需要注意
else表示如果没有异常时要执行的代码
finally表示的是无论是否有异常都要执行的代码。
当把else、finally都放入到捕获异常中语法
try:可能发生异常的代码
except 异常类型:当捕获到该异常类型时执行的代码
else:没有异常信息时执行的代码
finally:无论如何都会执行的代码
例如一起来完成
# 1.制造异常
# 2.处理 指定异常
try:data [1, 2, 3]print(data[100])# print(data[0])
except IndexError:print(1已发生异常信息!)
else: # 3.else没有发生异常时,处理的事情print(没有发生异常时,才会执行代码!!)
finally:# 4.finally文件必须关闭print(无论如何,都会执行finally!!)
异常具有传递性
# 1.func()
def func():print(A)try:datas [1,2,3]print(datas[100])except Exception:# 日志、埋点? --采集print(发生了异常信息...) # 后台开发print(B)# 2.test()
def test():print(********1***********)func()print(********2***********)# 3.调用test()
test()
总结
1当一段可能发生异常的代码发生了异常时若不处理则会传递给调用处
2注意标准的异常处理方式是。A、捕获异常 B、抛出异常
解析A 捕获异常和 B 抛出异常都是异常处理机制中的重要环节单独选一个都不太准确。但相对来说捕获异常可以在局部对异常进行处理保证程序的稳定性在一些情况下更为常用。
综上所述没有绝对标准的单一答案需根据具体情况综合运用这两种方式进行异常处理。