1.请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中
"""
请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中
"""
import time
# 利用有参装饰器实现
def log_name_time(name, time):
def log(func):
def wrapper(*args, **kwargs):
print(f"函数名字:{func.__name__},调用时间:{time}")
func(*args, **kwargs)
return wrapper
return log
@log_name_time("func.__name__", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
def test():
print("函数已执行")
test()
2.编写一个装饰器,每执行一个函数,记录函数名称及函数执行时间,并写入log.text文件中
"""
编写一个装饰器,每执行一个函数,记录函数名称及函数执行时间,并写入log.text文件中
"""
import time
FILE_PATH = "log.text"
class WriteTime():
def __init__(self, time):
self.time = time
def __call__(self, func):
def wrapper(*args, **kwargs):
with open(FILE_PATH, 'a+', encoding="utf-8") as f:
f.write(f"写入字符串的时间为:{self.time},字符串为:")
func(*args, **kwargs)
return wrapper
@WriteTime(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
def write_str(str):
with open(FILE_PATH, 'a+', encoding="utf-8") as file:
file.write(f"{str}\n")
if __name__ == '__main__':
str = input("请输入一段字符:")
write_str(str)
3.使用with语法完成文件的复制
"""
使用with语法完成文件的复制
"""
with open("log_copy.txt", "w+", encoding="utf-8") as f, open("log.text", "r", encoding="utf-8") as r:
f.write(r.read())
print(f"复制文件名 {r.name} , 复制后文件名 {f.name} ")
4.完成登录系统,登录时数据使用序列化和反序列化
"""
完成登录系统,登录时数据使用序列化和反序列化
"""
import pickle
# 模拟用户存储在数据库中的用户名和密码已经完成序列化
username_mysql = pickle.dumps("zhangsan")
password_mysql = pickle.dumps("123")
def login(username, password):
return "success" if (
username == pickle.loads(username_mysql) and password == pickle.loads(password_mysql)) else "failure"
if __name__ == "__main__":
username = input("请输入用户名:").strip()
password = input("请输入密码:").strip()
print(login(username, password))