Python在保持缩进的同时安全地替换文本块

时间:2014-06-23 04:30:10

标签: python string substitution

我正在尝试使用safe_substitution中的string.py类模板类将$keywords替换为我自己的文本。麻烦的是,在某些情况下,我想插入一个包含换行符的文本块,但是该块中的所有行都与$keyword所处的级别具有相同的缩进级别。当我现在这样做时,第一行保持相同的缩进级别,但以下行都没有缩进。

(编辑)例如:

    >>> from string import Template
    >>> s = 'No indent\n  $indented'
    >>> print(s)
    No indent
      $indented
    >>> t = Template(s)
    >>> print(t.safe_substitute(dict(indented='First Indent')))
    No indent
      First Indent
    >>> print(t.safe_substitute(dict(indented='First Indent\nSecond Indent')))
    No indent
      First Indent
    Second Indent
    >>> 

我知道safe_substitute的行为正如它应该的那样,因为它只是在找到$ indented时插入文本字符串,然后当它到达换行符时它找不到其他空格,因此没有缩进。我想知道最流行的方法是让前面的所有行都有相同的空格。

0 个答案:

没有答案