一只码畜 2020-01-17
# 1、实现一个文件复制器函数,通过给函数传入一个路径,复制该路径下面所有的文件(目录不用复制)到当前目录,# 要求:如果传路径不存在,不能报错准备复制的目录:下面有两个目录和三个文本文件,我们这次复制的就是这三个文本文件。(附文本文件内容)我们要把【操作的目录】下的文本文件复制到【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、石头剪刀布游戏,用户输入时,如果输入非数字会引发异常,请通过异常捕获来处理这个问题执行代码:
运行结果: