如何剥离双空格并留下新线?蟒蛇

时间:2013-03-27 09:07:06

标签: python string newline whitespace strip

如何剥离双倍空格并留下新线?没有re可以吗?

如果我有类似的东西:

string = '   foo\nbar  spam'

我需要得到:

'foo\nbar spam'

' '.join(string.split())删除所有空格,包括新行:

>>> ' '.join(string.split())
'foo bar spam'

' '.join(string.split(' '))什么都不做。

3 个答案:

答案 0 :(得分:7)

>>> text = '   foo\nbar      spam'
>>> '\n'.join(' '.join(line.split()) for line in text.split('\n'))
'foo\nbar spam'

这将它分成几行。然后它按空格分割每一行,并用单个空格重新连接。然后它重新加入线条。

答案 1 :(得分:2)

可以使用strip或lstrip函数:

line = '   foo\nbar  spam'
while '  ' in line:
    line = line.replace('  ', ' ')
line = line.strip(' ')

答案 2 :(得分:1)

text = [' '.join(i.split()) for i in text.split('\n') if not i.isspace()]
text = '\n'.join(text)