请为以下函数编写一个装饰器,添加上装饰器后可以实现: 检查文件所在路径(文件件)是否存在,如果不存在自动创建文件夹(保证写入文件不报错def write_user_info(path): file_obj = open(path, mode='w', encoding='utf-8') file_obj.write("武沛齐") file_obj.close() write_user_info('/usr/bin/xxx/xxx.png')
时间: 2023-05-23 09:04:03 浏览: 133
下面是装饰器的代码:
import os
def check_path(func):
def wrapper(path):
dir_path = os.path.dirname(path)
if not os.path.exists(dir_path):
os.makedirs(dir_path)
return func(path)
return wrapper
@check_path
def write_user_info(path):
file_obj = open(path, mode='w', encoding='utf-8')
file_obj.write("武沛齐")
file_obj.close()
write_user_info('/usr/bin/xxx/xxx.png')
相关问题
pytest : 无法将“pytest”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 2
pytest是一个Python的测试框架,它提供了丰富的功能和灵活的方式来编写和运行测试用例。pytest可以帮助开发者进行单元测试、集成测试和功能测试等各种类型的测试。
pytest的一些主要特点包括:
1. 简单易用:pytest提供了简洁的语法和丰富的断言库,使得编写测试用例变得简单而直观。
2. 自动发现:pytest会自动发现项目中的测试文件和测试函数,并执行它们,无需手动配置。
3. 参数化测试:pytest支持参数化测试,可以通过一次编写多个测试用例,并根据不同的参数进行测试。
4. 丰富的插件生态系统:pytest有一个庞大的插件生态系统,可以扩展其功能,例如生成测试报告、代码覆盖率等。
5. 支持多种类型的断言:pytest支持多种类型的断言,包括简单的相等断言、容器断言、异常断言等。
使用pytest进行测试时,可以通过在测试函数上添加装饰器`@pytest.mark.test`来标记测试函数,然后使用命令`pytest`来运行所有的测试用例。
阅读全文