【发布时间】:2022-01-08 00:57:41
【问题描述】:
我有很大的f-string,为了代码的可读性,我正在刹车(见下文)。
但是当我打印(打印到文件,它是String.IO 对象)字符串时,我得到每个新行前的缩进(第一行除外),我不想要那个(我的IDE 是vscode)。
当取下面相同的f-string 到python shell 解释器(REPL)时,输出字符串是正确的。
def foo():
ml.append(f"""
#define {ip}_{mtype}_{secname}_{fieldname}_MASK (MASK({H},{L}))
#define {ip}_{mtype}_{secname}_{fieldname}_START_BIT ({fieldsb})\n""")
输出文件如下所示:
#define QM_MEM_CBTIRDY_LENGTH (0x40) //good line
#define QM_MEM_CBTIRDY_DATA_MASK (GENMASK(31,0)) //bad line (with indentation)
#define QM_MEM_CBTIRDY_DATA_START_BIT (0)
我已经通过删除每个新行之间的缩进来修复它(但它的丑陋因为字符串具有相同的函数定义缩进级别,这很丑陋)
def foo():
ml.append(f"""
#define {ip}_{mtype}_{secname}_{fieldname}_MASK (MASK({H},{L}))
define {ip}_{mtype}_{secname}_{fieldname}_START_BIT ({fieldsb})\n""")
我怎样才能去掉最终字符串中的这些缩进字符?
【问题讨论】:
标签: python-3.x f-string