目录
a.1:以写的方式打开文件stu_info.txt并向文件中写入(姓名-性别-年龄):每个一行
b.读:以读的方式打开文件stu_info.txt,读取文件的每一行内容,并格式化输出,输出格式:居中对齐
a.装饰器:要求定义一个装饰器(通用),可以打印出被装饰函数的运行时间
a.写:
a.1:以写的方式打开文件stu_info.txt并向文件中写入(姓名-性别-年龄):每个一行
使用write
方法一 :
list_data = [ "zhangsan-male-20", "lisi-female-21", "wangwu-male-20" ] file_data = open("stu_info", "w", encoding='utf-8') str_data = file_data.write("\n".join(list_data)) file_data.close()
方法二:
list_data = [ "zhangsan-male-20", "lisi-female-21", "wangwu-male-20" ] with open("stu_info", "w") as file_data: print(file_data.write("\n".join(list_data)))
使用writelines
方法一:
list_data = ["zhangsan-male-20\n","lisi-female-21\n","wangwu-male-20\n" ] file_data2 = open("stu_info", "w") str_data2 = file_data2.writelines(list_data) file_data2.close()
方法二:
list_data = ["zhangsan-male-20\n","lisi-female-21\n","wangwu-male-20\n" ] with open("stu_info", "w") as file_data2: print(file_data2.writelines(list_data))
b.读:
b.读:以读的方式打开文件stu_info.txt,读取文件的每一行内容,并格式化输出,输出格式:居中对齐
print(f"{'name':^20}{'gender':^10}{'age':^10}") file_data = open("stu_info", "r") str_data = file_data.readlines() file_data.close() # print(str_data, type(str_data)) for i in str_data: strip_data = i.strip() split_data = strip_data.split("-") # print(split_data, type(split_data)) print(f"{split_data[0]:^20}{split_data[1]:^10}{split_data[2]:^10}") ''' name gender age zhangsan male 20 lisi female 21 wangwu male 20 ''' '''
装饰器:
a.装饰器:要求定义一个装饰器(通用),可以打印出被装饰函数的运行时间
满足题意的函数
import time def decorator(arg): def outer(func): def inner(*args, **kwargs): befor_time = time.time() func(*args, **kwargs) after_time = time.time() run_time = befor_time - after_time print(run_time) return inner return outer @decorator("debug")
证明:装饰打印hello
import time def decorator(arg): def outer(func): def inner(*args, **kwargs): befor_time = time.time() func(*args, **kwargs) after_time = time.time() run_time = befor_time - after_time print(run_time) return inner return outer @decorator("debug") def print_arg(*args, **kwargs): time.sleep(2) print("hello") # print(key=1) print_arg(1, 3, key=2)
装饰一个传关键字参数的函数:
import time def decorator(arg): def outer(func): def inner(*args, **kwargs): befor_time = time.time() func(*args, **kwargs) after_time = time.time() run_time = befor_time - after_time print(run_time) return inner return outer @decorator("debug") def print_key(*, key="vaule"): print(key) time.sleep(2) print_key(key=1)
装饰一个可以运算打印三数之和的函数
import time def decorator(arg): def outer(func): def inner(*args, **kwargs): befor_time = time.time() func(*args, **kwargs) after_time = time.time() run_time = befor_time - after_time print(run_time) return inner return outer @decorator("debug") def print_sum(arg1, arg2, arg3, arg4): arg = arg1 + arg2 + arg3 + arg4 print(arg) time.sleep(2) print_sum(1, 2, 3, 4)