みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けにPythonプログラミングの基本中の基本をフォルダ作成ツールを作りながら学ぶシリーズです。
前回の記事はコチラ。
Pythonでテキストファイルを読み込む方法についてお伝えしました。
さて、今回はそのテキストファイルから取得した文字列を加工していきます。
具体的には、改行コードで文字列を分割してリストに保存する方法です。
splitメソッド、splitlinesメソッドを使いますよ。
では、行ってみましょう!
前回のおさらい
前回はテキストファイルのデータを読み取る方法をお伝えしましたが、2種類ありましたね。
今回は、開いたテキストファイルに対して、readメソッドでデータを読み込むプログラムを見ていきます。
こちらです。
f = open('area.txt')
print(f.read())
f.close()
area.txtの中身は以下のようになっています。
このプログラムを実行すると、以下のような結果が出力されました。
readメソッドは、テキストファイル全体を文字列として取得するメソッドで、出力を見ると改行も含めてそのまま出力されていますね。
このデータを元に、フォルダを作成するためには、それぞれのフォルダ名を切り出すという工程を踏む必要がありますね。
どのようにしたらいいでしょうか。
splitメソッドで文字列を分割してリスト化する
出力結果もちゃんと改行がされているということなので、readメソッドで取得した文字列の中の改行コードを見つけて、そこで区切ってあげればそれぞれのフォルダ名を切り出すことができそうです。
Pythonでは、文字列を任意の区切り文字で分割してリストに格納するsplitメソッドがあります。
以下のように書きます。
sepに区切り文字(または文字列)を指定します。sepは省略することができ、その場合は空白文字(スペース、タブ、改行)で区切るように動作します。
今回の場合は、改行コードを区切り文字にしたいわけですから、sepは省略してもOKですよね。
では、実際にsplitメソッドを使って、readメソッドで読み込んだ文字列をリストに分割してみましょう。
プログラムはこちらです。
f = open('area.txt')
areas = f.read().split()
print(areas)
f.close()
実行をしてみると、Shellウィンドウに以下のような出力が得られます。
なんて便利なんでしょう!
改行コードだけで文字列を分割する方法
ちょっといじわるをしてみましょう。
テキストファイルが以下のような内容だったらどうなりますか?
splitメソッドでsepを省略した場合の区切り文字は改行だけでなく、スペースやタブも含まれるので、先ほどのプログラムを実行すると以下のように半角スペースの位置でも分割されてしまいます。
このような場合は、区切り文字を改行コードのみにしぼらないといけませんね。
splitメソッドの区切り文字に改行コードを指定する
改行コードのエスケープシーケンスは「\n」ですから、以下のようにsplitメソッドで区切り文字として指定すればOKですね。
areas = f.read().split('\n')
splitlinesメソッドを使って改行で分割する
もう一つの方法として、splitlinesメソッドを使う方法があります。
その名の通り、文字列を改行位置で区切って分割するメソッドです。Python…いくらでも方法がありますね。
書き方はこうです。
コードは以下のように書けばOKですね。
areas = f.read().splitlines()
元のテキストデータの中に、スペースやタブなどが混在する可能性がぬぐえないのであれば、改行コードによるsplitメソッドか、splitlinesメソッドを使ったほうが確実ですね。
readメソッドでテキストファイルを読み取りフォルダを作成する
以上を踏まえて、テキストファイルから読み取った文字列をもとに、フォルダ名を切り出して、作業フォルダにフォルダを作成するプログラムを作りました。
こちらです。
import os
f = open('area.txt')
areas = f.read().split()
f.close()
for area in areas:
if os.path.exists(area):
print('フォルダ ' + area + ' は既に存在しています')
else:
os.mkdir(area)
今回解説していない部分については、以下をはじめシリーズの過去記事を参考にして下さいね。
まとめ
Pythonで文字列を区切り文字で分割するsplitメソッド、また改行コードで分割するsplitlineメソッドの使い方についてお伝えしました。
Python、いちいちシンプルな記述で解決できちゃいますね。素晴らしいです。
次回は、readlinesメソッドで読み取った場合のフォルダ作成プログラムを作っていきます。
どうぞお楽しみに!
連載目次:【初心者向け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ファイルからデータを読み込む最初の一歩