1.请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中
import time
def log(func):
def wrapper(*args,**kwargs):
ret = func(*args,**kwargs)
with open("HomeWork/log.text","r+") as f :
f.write(f"调用函数:{func.__name__},时间:{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))}\n")
return wrapper
@log
def read():
print("yes")
if __name__ == "__main__":
read()
2.编写一个装饰器,每执行一个函数,记录函数名称及函数执行时间,并写入log.text文件中
import time
def log(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
execution_time = end_time - start_time
with open("HomeWork/log.text","r+") as file:
log_message = f"Function '{func.__name__}' executed in {execution_time} seconds\n"
file.write(log_message)
return result
return wrapper
@log
def read():
time.sleep(1)
print("Function executed")
if __name__ == "__main__":
read()
3.使用with语法完成文件的复制
with open("HomeWork/5.text","r+") as f1,open("HomeWork/sss.text","r+") as f2:
f1.write(f2.read())
4.完成登录系统,登录时数据使用序列化和反序列化
import io
import pickle
salt = "futao"
f = open("HomeWork\\userinfo.text","r+")
user = f.readline()
user = user[0:len(user)-1]
pwd =f.readline()
us = pickle.dumps(user)
pw = pickle.dumps(pwd)
# #验证登录成功的函数
def is_login(username,password):
#2.验证
#自定添加其他验证,比如去除空格,是否为空等等
if username == us and password == pw:
return True
else:
return False
if __name__ == "__main__":
username1 = input("请输入用户名:")
password1 = input("请输入密码:")
username = pickle.dumps(username1)
password = pickle.dumps(password1)
print(username)
print(password)
print("登录成功" if is_login(username,password) else"登录失败")