5

ダブルスペースを取り除き、新しい行を残す方法は?なくても可能reですか?

私がそのようなものを持っている場合:

string = '   foo\nbar  spam'

そして、私は取得する必要があります:

'foo\nbar spam'

' '.join(string.split())新しい行を含むすべての空白を削除します。

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

' '.join(string.split(' '))何もしない。

4

3 に答える 3

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

これにより、行に分割されます。次に、各行を空白で分割し、単一のスペースで再結合します。それからそれはラインに再結合します。

于 2013-03-27T09:07:40.220 に答える
2

stripまたはlstrip関数を使用できます。

line = '   foo\nbar  spam'
while '  ' in line:
    line = line.replace('  ', ' ')
line = line.strip(' ')
于 2013-03-27T09:10:41.357 に答える
2
text = [' '.join(i.split()) for i in text.split('\n') if not i.isspace()]
text = '\n'.join(text)                                                   
于 2013-03-27T11:23:43.810 に答える