Python小练:(五:异常处理)

# 1、实现一个文件复制器函数,通过给函数传入一个路径,复制该路径下面所有的文件(目录不用复制)到当前目录,# 要求:如果传路径不存在,不能报错准备复制的目录:下面有两个目录和三个文本文件,我们这次复制的就是这三个文本文件。(附文本文件内容)我们要把【操作的目录】下的文本文件复制到【Python_异常捕获】目录下

Python小练:(五:异常处理)

 Python小练:(五:异常处理)

 Python小练:(五:异常处理)

 Python小练:(五:异常处理)

代码:

Python小练:(五:异常处理)

运行结果:

Python小练:(五:异常处理)

Python小练:(五:异常处理)

 Python小练:(五:异常处理)

# 2、改善上节课扩展作业的注册程序,# 打开文件的读取数据的时候,如果文件不存在会报错,# 请通过try-except来捕获这个错误,进行处理,让注册程序可以继续运行。执行代码(可直接执行的):
def registered(file):    try: # 读取文件内容时校验是否存在该文件        with open(file,‘r‘,encoding=‘utf-8‘) as fb:            user_info = eval(fb.read())    except FileNotFoundError as FN: # 如果不存在该文件则 创建文件,然后进行注册流程        print("---------------------文件不存在,尝试新建文件---------------------")        with open(file,‘w‘,encoding=‘utf-8‘) as fb1: # 新建一个文件,写入内容,无内容会报错            fb1.write("[]")        with open(file,‘r‘,encoding=‘utf-8‘) as fb2: # 然后再读取出来            user_info = eval(fb2.read())        user_name = [] # 用于存放读取出的用户名        for i in user_info: # 变量读取出的数据            user_name.append(i[‘user‘]) # 将读取到的用户名添加到user_name,用于判断是否已注册        print("---------------------创建文件成功---------------------")        while True:            username = input("请输入你的用户名:")            if username in user_name:                print("该用户名已被注册,请重新输入!")            else:                while True:                    pwd1 = input("请输入你的密码:")                    pwd2 = input("请再次输入密码:")                    if pwd2 != pwd1:                        print("两次密码输入不一致,请重新输入密码!")                    else:                        print("注册成功!")                        user_info.append({"user": username, "pwd": pwd2}) # 将新注册的用户名和密码谈价到读取出的user_info中                        with open(file, ‘w‘, encoding=‘utf-8‘) as fb: # 覆盖写入全部数据                            fb.write(str(user_info))                        break                break        print(FN) # 打印出报错信息    else: # 如果判断存在该文件,则直接进行注册流程        print("---------------------文件已存在,正在进入注册流程---------------------")        user_name = []        for i in user_info:            user_name.append(i[‘user‘])        while True:            username = input("请输入你的用户名:")            if username in user_name:                print("该用户名已被注册,请重新输入!")            else:                while True:                    pwd1 = input("请输入你的密码:")                    pwd2 = input("请再次输入密码:")                    if pwd2 != pwd1:                        print("两次密码输入不一致,请重新输入密码!")                    else:                        print("注册成功!")                        user_info.append({"user":username,"pwd":pwd2})                        with open(file, ‘w‘, encoding=‘utf-8‘) as fb:                            fb.write(str(user_info))                        break                break    finally: # 无论执行的是 except 代码块还是 else 代码块,都会执行的代码        print(">>>>>>全场最佳<<<<<<")registered(‘user_info.txt‘)
3、石头剪刀布游戏,用户输入时,如果输入非数字会引发异常,请通过异常捕获来处理这个问题执行代码:

Python小练:(五:异常处理)

运行结果:

Python小练:(五:异常处理)

相关推荐