Pythonで末尾の改行だけ取り除く
ファイルから読み込んだ時など、末尾にある改行だけ取り除きたい場合があります。
末尾の1文字だけ取り除くと改行以外の文字が取り除かれてしまう恐れがありますね。
この場合Pythonではどのように行うのか調べてみました。
目次
末尾の改行だけ取り除く
いずれもstringとスペースは残り、字数9となり、末尾の改行(\r
or \n
)だけが取り除かれます。
※\r\n
はWindows、\n
はLinux、\r
は旧Mac。
PHP rtrim
<?php echo strlen(rtrim("string \r\n\r\n", "\r\n")); echo strlen(rtrim("string \n\n", "\r\n")); echo strlen(rtrim("string \r\r", "\r\n"));
Python rstrip
2.x 3.x
print(len('string \r\n\r\n'.rstrip('\r\n'))) print(len('string \r\r'.rstrip('\r\n'))) print(len('string \n\n'.rstrip('\r\n')))
Pythonは文字列をスライス表記で操作できるので次のようなことが可能ですが、末尾が文字列でない場合も取り除いてしまうため注意が必要です。
s = 'string \n' print(s[:-1]) # string s = 'string' print(s[:-1]) # strin
こちらを参考にしました。
PHPで言うところのltrim
, trim
, rtrim
が、
Pythonではlstrip
, strip
, rstrip
で利用できるようです。