Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何去掉两个空格并留下新行?python_Python_String_Newline_Whitespace_Strip - Fatal编程技术网

如何去掉两个空格并留下新行?python

如何去掉两个空格并留下新行?python,python,string,newline,whitespace,strip,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('')什么都不做 >>> text = ' foo\nbar spam'

如何去掉两个空格并留下新行?是否可以不使用
re

如果我有类似的东西:

string = '   foo\nbar  spam'
我需要得到:

'foo\nbar spam'
'.join(string.split())
删除所有空白,包括新行:

>>> ' '.join(string.split())
'foo bar spam'
'.join(string.split('')
什么都不做

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

这把它分成了几行。然后,它用空格分隔每一行,并用单个空格重新连接。然后它重新连接这些行。

可以使用strip或lstrip函数:

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

strip
删除字符串开头和结尾的空格,而不是字符串内部的空格。您希望
'(3个空格)foo\nbar(6个空格)spam
的输出是什么?@jamylak,只有一个,反正只有一个。@jamylak改变了,错过了关于内部单个空格的要点,很好的捕获-实际上看起来这也快了
text = [' '.join(i.split()) for i in text.split('\n') if not i.isspace()]
text = '\n'.join(text)