多行字符串往往会涉及到去除缩进的问题,比如发送的消息内容为 Markdown,如果不对缩进进行处理,显示的内容就完全不一样了。

1. textwrap.dedent

第一种方式就是使用 textwrap.dedent 函数来对多行字符串去除缩进,该函数的功能是去除行首和行尾的空格和缩进,其余行会与首行保持原有结构

  1. import textwrap
  2. content = '''
  3. 实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n
  4. > 类型:<font color=\"comment\">用户反馈</font>
  5. # h1
  6. ## h2
  7. <font color="info">绿色</font>
  8. '''
  9. print(textwrap.dedent(content))

打印内容:

  1. 实时新增用户反馈<font color="warning">132例</font>,请相关同事注意。
  2. > 类型:<font color="comment">用户反馈</font>
  3. # h1
  4. ## h2
  5. <font color="info">绿色</font>

:::tips 💡 注意点

  • 当我们使用 textwrap.dedent 方式来去除多行字符串的缩进时,一定要注意调整其余内容与首行的结构。
  • 当首行比其余行缩进更多时,会以最先缩进到行首的那一行为准,保持原结构。 :::

    2. inspect.cleandoc

    第二种方法就是使用 inspect.cleandoc 函数,功能与 textwrap.dedent 几乎一致。 ```python import inspect

content = ‘’’ 实时新增用户反馈132例,请相关同事注意。\n

  1. > 类型:<font color=\"comment\">用户反馈</font>
  2. # h1
  3. ## h2
  4. <font color="info">绿色</font>
  5. '''

print(inspect.cleandoc(content)) ```