import time
import os
deffuncOut(func):deffuncIn(*args,**kwargs):
start_time = time.time()
v = func(*args,**kwargs)
end_time = time.time()print(f'{func.__name__}执行耗时{end_time-start_time}秒')return v
return funcIn
defcopyfile(filepath):# E:\offcn\授课班级\9.基地系统0902班\Day15代码\demo01_知识回顾.py# 判断目标文件是否存在if os.path.exists(filepath):
f1 =open(filepath,'r',encoding='utf-8')
t = filepath.rpartition('.')
newname = t[0]+'_副本'+ t[1]+t[2]
f2 =open(newname,'w',encoding='utf-8')
f2.write(f1.read())
f1.close()
f2.close()print(f'文件{filepath}复制完成')else:print('目标文件不存在')"""
5.封装一个函数,可以实现类似操作系统的模糊查询功能(输入一个关键字,可以展示目标文件夹中包含关键字的所有文件)
#1. 文件名中包含关键字的
#2. 文件内容中包含关键字的
def search(dirpath,key):
pass
"""defsearch(dirpath,key):
files = os.listdir(dirpath)for f in files:# 子文件的路径名
newpath = dirpath+'/'+f
if os.path.isfile(newpath):# 看文件名中是否包含关键字if key in newpath:print(newpath)# 如果文件名中不包含else:# 打开文件,读取内容,看是否包含withopen(newpath,'r',encoding='utf-8')as f:if key in f.read():print(newpath)elif os.path.isdir(newpath):
search(newpath,key)
path = r'E:\offcn\授课班级\9.基地系统0902班\Day15代码'
search(path,'.py')
"""
异常处理:
try:
可能会报错的代码
except:
异常捕获到后,给出提示
try:
pass
except 异常 as 变量:
pass
try:
pass
except 异常1 as 变量:
pass
except 异常2 as 变量:
pass
。。。
多个except执行路程等价于多分支的执行流程
注意:
一般情况下,子类异常写前边,父类异常写后边
需求:
从键盘录入被除数与除数,求商,并打印结果
1.问题: ValueError: 数据类型有误
2.问题: ZeroDivisionError: division by zero
"""# a = input('请输入被除数')# b = input('请输入除数')# # 1.ValueError: 数据类型有误# a = int(a)# b = int(b)# # 2.问题: ZeroDivisionError: division by zero# c = a / b# print(f'商为:{c}')# 优化后结果 v1.1# a = input('请输入被除数')# b = input('请输入除数')# # 1.ValueError: 数据类型有误# if a.isdigit() and b.isdigit():# a = int(a)# b = int(b)# # 2.问题: ZeroDivisionError: division by zero# if b != 0:# c = a / b# print(f'商为:{c}')# else:# print('0不能做除数')# else:# print('输入有误')# 使用异常处理优化代码 v1.2# try:# a = input('请输入被除数')# b = input('请输入除数')# a = int(a)# b = int(b)# c = a / b# print(f'商为:{c}')# except:# print('输入有误/数学错误')# 使用异常处理优化代码 v1.3# try:# a = input('请输入被除数')# b = input('请输入除数')# a = int(a)# b = int(b)# c = a / b# print(f'商为:{c}')# except Exception as e:# print(e)# print(type(e))# print('输入有误/数学错误')# 使用异常处理优化代码 v1.4 精准定位异常信息try:
a =input('请输入被除数')
b =input('请输入除数')
a =int(a)
b =int(b)
c = a / b
print(f'商为:{c}')except ValueError as v:print('输入有误')except ZeroDivisionError as z:print('数学错误')except Exception as e:print('其他异常')