4

次の文字列があります。

string = """
Hello World
123
HelloWorld
"""

Pythonの文字列からすべての改行をクリアしたい。

私は試した

string.strip()

しかし、それは思い通りに機能していません。

どうすればいいですか?

私はpython 3.3を使用しています

ありがとう。

4

5 に答える 5

14

三重引用符で囲まれた文字列の使用方法によっては、この問題を完全に回避できることを指摘したいと思います。

Python のトリプル クォート文字列で\は、行末にバックスラッシュ (" ") を配置して、改行を無視できます。つまり、これを使用して、文字列に改行を加えることなく、コード内のその場所に改行を入れることができます。

例えば:

"""line 1 \
line 2 \
line 3"""

実際になる

line 1 line 2 line 3

何らかのファイルまたはその他の出力に印刷または書き込まれた場合。

このように使用すると、関数で改行を置き換える必要がなくなり、コードがより明確でクリーンになります。

編集:

このようにバックスラッシュの行継続を使用している場合は、単純な単一引用符で囲まれた文字列も同じ方法で使用できます。

"line 1 \
line 2 \
line 3"

も同等です

line 1 line 2 line 3
于 2015-10-26T20:12:05.390 に答える
11

str.strip文字列の先頭と末尾から空白を削除します。

>>> string
'\nHello World\n123\nHelloWorld\n'
>>> string.strip()
'Hello World\n123\nHelloWorld'

文字列内の改行文字を削除したい場合は、次を使用して別のものに置き換えることができますstr.replace

>>> string.replace('\n', ' ')
' Hello World 123 HelloWorld '
于 2013-11-03T19:00:03.340 に答える
5

この種の操作translateには代わりに使用します。replace

>> string.translate(None, "\n")
Hello World123HelloWorld

大きなファイルで作業する場合、翻訳がいかに高速であるかを実感できます。

于 2013-11-03T19:17:54.557 に答える
0

主な質問はすでに回答されていますが、個々の行を使用する予定がある場合は、これを行う方がよいかもしれないことを追加したいと思います-

string = """
Hello World
123
HelloWorld
"""
for line in string.strip().split('\n'):
    print(line)
    # do something with the line

上記のコードからの出力-

Hello World
123
HelloWorld
于 2013-11-03T19:12:16.770 に答える
0

シンプルstr.replace:

string.replace('\n', ' ')
于 2013-11-03T18:58:48.490 に答える