如何移除Python多行缩进字符串的缩进并转为单行输出?
解决多行缩进字符串转为单行的问题
要将Python中带缩进的多行字符串移除缩进并展开为单行,你可以通过以下几种方法实现:
方法一:逐行处理后拼接
该方法适用于任何缩进情况(包括每行缩进不一致的场景):
- 将字符串按换行符分割为多行
- 对每行去除首尾空白字符
- 过滤掉空行后,用空格将所有有效行拼接成单行
示例代码:
def foo(): cmd = '''ls /usr/bin /usr/sbin /usr/local/bin''' # 处理字符串:去除换行和每行的首尾空白,拼接为单行 processed_cmd = ' '.join(line.strip() for line in cmd.splitlines() if line.strip()) print(f'{processed_cmd=}') foo()
运行输出:
processed_cmd='ls /usr/bin /usr/sbin /usr/local/bin'
方法二:使用textwrap.dedent(适用于统一缩进场景)
如果所有行的缩进量一致,可以先用textwrap.dedent移除所有行的共同前置空白,再替换换行符为空格:
示例代码:
import textwrap def foo(): cmd = ''' ls /usr/bin /usr/sbin /usr/local/bin''' # 先移除统一缩进,再替换换行为空格 processed_cmd = textwrap.dedent(cmd).replace('\n', ' ') print(f'{processed_cmd=}') foo()
运行输出:
processed_cmd='ls /usr/bin /usr/sbin /usr/local/bin'
内容的提问来源于stack exchange,提问作者Timur Shtatland
相关产品推荐
相关产品推荐

