長い文字列からすべての改行を削除する

基本的には、ユーザーに文字列をコンソールに入力してもらうのですが、その文字列が非常に長く、改行も多く含まれています。 ユーザーの文字列を受け取って、すべての改行を削除して1行のテキストにするにはどうすればいいでしょうか。 文字列を取得する方法はとても簡単です。

string = raw_input("Please enter string: ")

ユーザーから文字列を取得するのに、何か別の方法があるのでしょうか? MacでPython2.7.4を使用しています。

P.S. 明らかに私は初心者なので、たとえ解決策が最も効率的でなくても、最もシンプルな構文を使ったものであればありがたいです。

ソリューション

raw_inputで改行を入力するにはどうしたらいいですか?しかし、削除したい文字が含まれている文字列があれば、それをreplace` すればよいのです。

>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>

上の例では、すべてのスペースを置き換えました。文字列 '̫͡ は改行を表しています。また、`rはキャリッジリターンを表しています(Windowsをお使いの方は、これらの文字が出てくるかもしれませんが、2回目のreplaceで処理してくれます!)。

基本的には

# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')

また、変数の名前を string とするのは良くないことに注意してください。もうひとつの名前は、私は避けたいと思っていますが、時々は使いたいと思っています。file`です。同じ理由からです。

解説 (8)

文字列置換を試してみてください。

string = string.replace('\r', '').replace('\n', '')
解説 (1)

Xbello "のコメントを元に更新しました。

string = my_string.rstrip('\r\n')

詳しくはこちらをご覧ください

解説 (2)