取消缩进并将多行字符串转换为单行

问题描述 投票:0回答:1

我的代码中有几个带缩进的多行字符串,例如这个(简化示例):

def foo():
    cmd = '''ls
                 /usr/bin
                 /usr/sbin
                 /usr/local/bin'''
    print(f'{cmd=}')

foo()

我想删除缩进并展开这样的字符串,以便将它们分别打印为一行。目前,它还打印由缩进产生的换行符和空格:

cmd='ls\n                 /usr/bin\n                 /usr/sbin\n                 /usr/local/bin'
python string indentation multiline heredoc
1个回答
0
投票

使用

re.sub
:

将多次出现的空格(包括换行符、制表符和空格)替换为单个空格
import re

def foo():
    cmd = re.sub(
        r'\s+', ' ',
        '''ls
              /usr/bin
              /usr/sbin
              /usr/local/bin''')
    print(f'{cmd=}')

foo()

打印:

cmd='ls /usr/bin /usr/sbin /usr/local/bin'
© www.soinside.com 2019 - 2024. All rights reserved.