template.format 函数用法



# 读取数据文件
with open('data', 'r') as file:
    lines = file.readlines()
'''在Python的字符串格式化中,使用 {} 作为占位符, {} 内部可以包含变量名或其他表达式。在某些情况下,如果你需要在字符串中直接包含 { 或 },你需要使用双花括号 {{ 和 }} 来表示单个的 { 和 }。这是为了防止字符串格式化引擎将它们解析为占位符。

在你的例子中,template 字符串中包含了 { 和 },这些花括号是C语言代码的一部分,而不是占位符。因此,你需要使用双花括号来确保这些花括号被正确地包含在生成的代码中。

具体来说,template 字符串中的 {{ 和 }} 会被解析为单个的 { 和 },如下所示'''
# 定义生成代码的模板

template1="{flag}=0;{condition}"  #这样写就可以
# 生成代码的函数
# def generate_code(lines):
#     code_blocks = []
#     for line in lines:
#         line = line.strip().strip(';')
#         if line:
#             var, value = line.split(' = ')
#             var = var.split('.')[-2]  # 获取变量名
#             flag = f"IBS_20ms_PDU12{var}_FLAG"
#             print("int "+flag+"=1;")
    #         condition = line
    #         formatted_code = template.format(condition=condition, flag=flag)
    #         code_blocks.append(formatted_code)
    # return "\n\n".join(code_blocks)

# 执行生成代码的函数并打印结果



check="""
if(1=={flag})
  {{
    TestStepPass("Result","{flag} SUCCESS");
  }}
  else
  {{
    testStepFail("Result","{flag} Fail");
  }}
"""


template = """
  if({condition})
  {{
    {flag}=1;
  }}
  else
  {{
    {flag}=0;
  }}
"""
def generate_code(lines):
    code_blocks = []
    for line in lines:
        line = line.strip().strip(';')  # 去除行尾的分号和空白字符
        if line:
            var, value = line.split(' == ')  # 分割条件
            var_name = var.split('.')[-2]  # 获取变量名(去除前面的路径)
            flag = f"PMA_50ms_PDU06{var_name}_FLAG"  # 生成标志变量名
            condition = line  # 使用原始条件
            formatted_code = template.format(condition=condition, flag=flag)  # 填充模板
            code_blocks.append(formatted_code)  # 将生成的代码块添加到列表中
    return "".join(code_blocks)  # 将所有代码块连接成一个字符串
final_code = generate_code(lines)
# print(final_code)
#
#
#
def check_code(lines):
    code_blocks = []
    for line in lines:
        line = line.strip().strip(';')  # 去除行尾的分号和空白字符
        if line:
            var, value = line.split(' == ')  # 分割条件
            var_name = var.split('.')[-2]  # 获取变量名(去除前面的路径)
            flag = f"PMA_50ms_PDU06{var_name}_FLAG" # 生成标志变量名
            condition = line  # 使用原始条件
            formatted_code = check.format( flag=flag)  # 填充模板
            code_blocks.append(formatted_code)  # 将生成的代码块添加到列表中
    return "".join(code_blocks)  # 将所有代码块连接成一个字符串
final_code = check_code(lines)
print(final_code)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值