みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けPythonの基本中の基本をフォルダ作成ツールを作りながら学ぶシリーズです。
前回の記事はこちらです。
テキストファイルから読み込んだ文字列を改行コードで区切って切り出す方法でした。
今回も文字列関連。
Pythonで簡単に文字列から改行コードを取り除く方法をお伝えします。
では、行ってみましょう!
前々回のおさらい
今回は、前々回の記事の以下のコードの続きを進めていきます。
f = open('area.txt')
print(f.readlines())
f.close()
「area.text」というのはコチラのテキストファイルです。
このテキストファイルに対して、上記のコードを使えば一行ずつリストに格納することができます。
そしてそのリストの要素をフォルダ名として、作業フォルダにフォルダ作成をしていきたいというのが当面の目標となっています。
改行コードが含まれているとフォルダが作れない
実際に、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)
こちら、実行してみると…
OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。: ’10_アフリカ\n’
やっぱりダメですね…。
各要素から改行コードを取り除かなければなりません。
stripメソッドで改行コードを取り除く
Pythonで文字列から空白文字を取り除く場合には、stripメソッドを使います。
書き方はコチラ。
stripメソッドが取り除く空白文字は、スペース、タブ、改行が対象になりますので、このまま今回のケースに使えるのです。
では、試しに以下コードを実行してみましょうか。
f = open('area.txt')
areas = f.readlines()
areas[0]=areas[0].strip()
print(areas)
f.close()
areasの0番目の要素、中身は文字列「10_アフリカ\n」ですが、これにstripメソッドを使って改行コードを取り除いてみます。
結果はコチラです。
ちゃんと改行コードが除かれていますね。
末尾または冒頭の空白文字のみを取り除く
なお、今回のケースではstripメソッドでよかったのですが、文字列の途中に空白などが含まれている場合はどうでしょうか。
例えば以下のように、数値と文字列の間をアンダースコアから半角スペースになっている場合です。
まあ、フォルダ名として半角スペースは不要っちゃ不要なのですが、これを残したい場合、stripメソッドでは削除されてしまうので困ります。
そこで、文字列の冒頭の空白文字だけを取り除く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】基本の基本を学びながらフォルダ操作
非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。- Pythonで標準ライブラリのモジュールをインポートして使ってみよう
- Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
- Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
- Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
- Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
- Pythonで条件分岐をする基本中の基本!if~else文の作り方
- Pythonでテキストファイルを開いてデータを読み込む基本中の基本
- Pythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方
- Pythonで文字列のスペース・タブ・改行を取り除くstripメソッドの使い方
- Pythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方
- Pythonでcsvファイルからデータを読み込む最初の一歩