Pythonで文字列のスペース・タブ・改行を取り除くstripメソッドの使い方


strip

photo credit: Tydence Window Washers via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けPythonの基本中の基本をフォルダ作成ツールを作りながら学ぶシリーズです。

前回の記事はこちらです。

Pythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方
初心者向けにPythonプログラミングの基本中の基本をフォルダ作成ツールを作りながら学んでおります。今回は、PythonのSplitメソッドで改行コードで文字列を分割してリストに保存する方法です。

テキストファイルから読み込んだ文字列を改行コードで区切って切り出す方法でした。

今回も文字列関連。

Pythonで簡単に文字列から改行コードを取り除く方法をお伝えします。

では、行ってみましょう!

スポンサーリンク

前々回のおさらい

今回は、前々回の記事の以下のコードの続きを進めていきます。

f = open('area.txt')
print(f.readlines())
f.close()

「area.text」というのはコチラのテキストファイルです。

Pythonで開くテキストファイル

このテキストファイルに対して、上記のコードを使えば一行ずつリストに格納することができます。

そしてそのリストの要素をフォルダ名として、作業フォルダにフォルダ作成をしていきたいというのが当面の目標となっています。

改行コードが含まれているとフォルダが作れない

実際に、readlinesメソッドで格納した結果がコチラです。

Pythonのreadlinesメソッドでテキストファイルを読み込んで出力

このリストの要素それぞれをフォルダ名にしたフォルダを作りたいのですが…えと「\n」という改行コードが含まれてしまっていますね。

嫌な予感がしますが、いったんこのリストを使ってフォルダを使ってみましょうか。

以下コードです。

import os
f = open('area.txt')
areas = f.readlines()
f.close()
for area in areas:
    if os.path.exists(area):
        print('フォルダ ' + area + ' は既に存在しています')
    else:
        os.mkdir(area)

こちら、実行してみると…

Pythonで改行を含むフォルダを作るときに出たOSError

OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。: ’10_アフリカ\n’

やっぱりダメですね…。

各要素から改行コードを取り除かなければなりません。

stripメソッドで改行コードを取り除く

Pythonで文字列から空白文字を取り除く場合には、stripメソッドを使います。

書き方はコチラ。

文字列.strip()

stripメソッドが取り除く空白文字は、スペース、タブ、改行が対象になりますので、このまま今回のケースに使えるのです。

では、試しに以下コードを実行してみましょうか。

f = open('area.txt')
areas = f.readlines()
areas[0]=areas[0].strip()
print(areas)
f.close()

areasの0番目の要素、中身は文字列「10_アフリカ\n」ですが、これにstripメソッドを使って改行コードを取り除いてみます。

結果はコチラです。

Pythonでリストの要素から改行コードを取り除く

ちゃんと改行コードが除かれていますね。

末尾または冒頭の空白文字のみを取り除く

なお、今回のケースではstripメソッドでよかったのですが、文字列の途中に空白などが含まれている場合はどうでしょうか。

例えば以下のように、数値と文字列の間をアンダースコアから半角スペースになっている場合です。

Pythonで読み込むテキストファイル

まあ、フォルダ名として半角スペースは不要っちゃ不要なのですが、これを残したい場合、stripメソッドでは削除されてしまうので困ります。

そこで、文字列の冒頭の空白文字だけを取り除くlstripメソッド、同じく末尾の空白文字だけを取り除くrstripメソッドというものがあります。

文字列.lstrip()
文字列.rstrip()

LeftのLと、RightのRですね。

今回のケースでは、末尾の改行コードだけを除去したいので、stripメソッドよりはrstripメソッドを使うほうがより安全かも知れません。

readlinesメソッドでテキストファイルを読み取りフォルダを作成する

以上を踏まえまして、readlinesメソッドでテキストファイルを読み込み、フォルダ名を取り出して作業フォルダにフォルダを作成するプログラムを作りました。

import os
f = open('area.txt')
areas = f.readlines()
f.close()
for area in areas:
    area = area.rstrip()
    if os.path.exists(area):
        print('フォルダ ' + area + ' は既に存在しています')
    else:
        os.mkdir(area)

これでエラーは出ずにフォルダを作成することができます。

まとめ

Pythonで文字列の空白文字を取り除くstripメソッドの使い方についてお伝えしました。

空白文字といっても、Pythonではスペース、タブ、改行が対象になりますので、一石三鳥的に便利ですね。

また、冒頭や末尾の空白文字だけを対象にするのであれば、lstripメソッドやrstripメソッドを使うことができます。

合わせて覚えておきましょう。

次回ですが、closeメソッドを忘れがちのあなたのためのwith文の使い方についてお伝えします。

Pythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方
初心者のためのPythonプログラミングシリーズ、フォルダ作成ツールを作るのを題材に基本中の基本についてお伝えしています。今回はPythonでwith文を使って安全にファイルを開いて閉じる方法です。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
  3. Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
  4. Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
  5. Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
  6. Pythonで条件分岐をする基本中の基本!if~else文の作り方
  7. Pythonでテキストファイルを開いてデータを読み込む基本中の基本
  8. Pythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方
  9. Pythonで文字列のスペース・タブ・改行を取り除くstripメソッドの使い方
  10. Pythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方
  11. Pythonでcsvファイルからデータを読み込む最初の一歩

タイトルとURLをコピーしました