You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多行f-string输出到文件出现多余缩进如何解决?

多行f-string多余缩进的解决方案

三引号字符串会原样保留代码中书写的前置缩进,你可以用以下两种方式兼顾代码排版和输出格式:

方法1:使用textwrap.dedent(推荐)

这是Python标准库提供的专用工具,不需要额外安装依赖,会自动移除多行字符串所有行共有的最小前置缩进,无需破坏代码的层级排版。
示例代码:

import textwrap

def foo():
    ml.append(textwrap.dedent(f"""\
    #define {ip}_{mtype}_{secname}_{fieldname}_MASK (MASK({H},{L}))
    #define {ip}_{mtype}_{secname}_{fieldname}_START_BIT ({fieldsb})
    """))

注意开头三引号后的\是为了避免输出的第一行出现多余空行,你可以根据自己的需求决定是否添加。

方法2:使用隐式字符串拼接

如果不想引入额外导入,可以利用Python括号内相邻字符串自动拼接的特性,拆分每行字符串书写:

def foo():
    ml.append(
        f"#define {ip}_{mtype}_{secname}_{fieldname}_MASK (MASK({H},{L}))\n"
        f"#define {ip}_{mtype}_{secname}_{fieldname}_START_BIT ({fieldsb})\n"
    )

这种方式不会把代码排版用的缩进带入最终输出,适合行数量较少的场景。


内容的提问来源于stack exchange,提问作者AdamF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:57:05