文字列の見た目を変更したく、
文字列の間にある空白を改行(\n)を入れたいなぁと思った時のお話。
目次
変更前の文字列達
その変更したいと思った文字列がこちらの英語達です。
How are you? 元気ですか?
How’s it going? 調子どう?
What’s going on? どうしたの?
1行で表示していたのですが、
英語の後に改行して日本語がきてほしいなぁ
と思ったので改行できるよう変更していきたいと思います。
後ろから文字を指定して文字列を分割する
まずは後ろの半角空白のところに’\n’をいれる必要があるので、こんな関数を書いてみました。
def change_backspace_to_br(line):
lines = line.rsplit(' ', 1)
if 2 == len(lines):
line = lines[0] + '\\n' + lines[1]
return line
line.rsplit(‘ ‘, 1)
後ろから数えて1番目の空白から二つに分けています。
戻り値は配列です。
if 2 == len(lines):
lenでサイズが分かるので、2つに分かれているかを確認しています。
その後に配列[1]を指定するので、チェックをしているしだいです。
ケースによってはあえてチェックをかけずにエラーを発生させてもいいかもです。
‘\\n’
一度csvとして保存したく、、、
‘\n’だと改行しちゃうので、エスケープさせています。
これで文字列はこのようになりました。
How are you?\n元気ですか?
How’s it going?\n調子どう?
What’s going on?\nどうしたの?
後ろの半角空白が’\n’に変更できました。
文字を指定して変更したい文字に変更(置換)
しかしいざcsvから取り出し表示させようとしたら
改行されずに’\n’まで表示されたので
表示させるときにも処理を加えました。
print(line.replace('\\n', '\n'))
line.replace(‘\\n’, ‘\n’)
‘\\n’という文字があれば’\n’に変更するという意味になります。
エスケープしていたで、改行をしてくれるよう置換します。
変更後の文字列達
これで英語の後に改行をして日本語を表示ができるよう変更できました。
How are you?
元気ですか?
How’s it going?
調子どう?
What’s going on?
どうしたの?
良い感じにできました!
コメント