Pythonで条件分岐をする基本中の基本!if~else文の作り方


branch

photo credit: Antonio Martinetti Scambio via photopin (license)

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

初心者向けにフォルダ作成ツールを題材としてPythonプログラミングの基本を学ぶシリーズです。

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

Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
初心者向けにフォルダ操作をする便利ツールを作りながらPythonプログラミングを学んでおります。今回はPythonで指定したフォルダが存在しているかどうかをos.path.exists関数で調べる方法です。

フォルダやファイルの有無を調べるos.path.exists関数の使い方についてお伝えしました。

そしてそれを活用して

  • フォルダが存在すればフォルダを作成しない
  • フォルダが存在しなければフォルダを作成する

という、いわゆる条件分岐の処理を作っていきたいと思っているところです。

ということで、今回はPythonで条件分岐をする基本中の基本、if~else文の作り方をお送りします。

行ってみましょう!

スポンサーリンク

これまでのおさらい

えと、今何をしようとしているかといいますと、フォルダ名をリストで指定しておいて、それらのフォルダをまとめてドバっと作業フォルダに作成するというPythonプログラムを作りたいということになります。

それで、いったん以下コードでその目的は達成できるのですが…

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    os.mkdir(area)

リストに指定しているフォルダ名と同名のフォルダが作業フォルダに存在していると、エラーになってしまうんですね。

それを防ごうというのが、目下の課題になっていまして、そのヒントとしてos.pathモジュールのexists関数を使えば、該当のフォルダが作業フォルダに存在しているかどうかはわかるぞ!というのが前回お伝えした内容です。

os.path.exists(path)

この関数は作りたいパス(今回でいうと作業フォルダなのでフォルダ名のみでOK)を指定すれば

  • フォルダが存在すればTrue
  • フォルダがぞ存在しなければFalse

というようにブール型の値を返します。このTrueかFalseかという情報を使って、エラーを回避していこうというのが今回のミッションになります。

if~else文で条件によって処理を分岐する

os.path.exists関数に作りたいフォルダ名を渡して、それが

  • 存在している(True)のであればフォルダは作らない
  • 存在していない(False)のであればフォルダを作る

というように、その存在有無によって処理を分岐するようにすればよいわけです。

Pythonで「もし~ならば…さもなくばxxx」というような条件による分岐処理を実現するには、if~else文を使います。

書式はこちらです!

if 条件式:
  # 条件式がTrueのときの処理
else:
  # 条件式がFalseのときの処理

条件式としてTrueまたはFalseを返すものを指定します。

その結果がTrueであれば、「if 条件式:」の次の行以降にインデントされて記述されている処理(ifブロック)を実行します。条件式の結果がFalseであれば、「else:」の次の以降にインデントされて記述されている処理(elseブロック)を実行します。

相変わらず、Pythonの記述は美しいです。

if~else文による処理の分岐の例

では、試しにif~else文を使ってみましょう。

以下コードを実行してみましょう。

import os
area = '10_アフリカ'
if os.path.exists(area):
    print('フォルダ ' + area + ' は既に存在しています')
else:
    print('フォルダ ' + area + ' はまだ存在していません')

「10_アフリカ」というフォルダが作業フォルダに存在しているのであれば、Shellウィンドウには以下のように出力されるはずです。

Pythonでif文を使ってメッセージを表示

リストについてフォルダが存在していないフォルダだけ作成する

では、if~else文を活用して、リストで指定したフォルダ名のうち、作業フォルダにないフォルダだけ作成するプログラムを作ってみます。

こちらです。

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    if os.path.exists(area):
        print('フォルダ ' + area + ' は既に存在しています')
    else:
        os.mkdir(area)

if文を使ったフォルダ作成プログラムの実行結果

例えば、作業フォルダが以下の状態だったとします。つまり、「30_アジア」だけ存在していますね。

初期の作業フォルダ

実行してみますと、作業フォルダは以下のように存在しないフォルダは作成されます。

Pythonによるフォルダ作成実施後の作業フォルダ

そして、Shellウィンドウには、既に存在していたフォルダについてメッセージが表示されますね。

Pythonでフォルダが存在していたときに表示したメッセージ

まとめ

今回は、Pythonで条件分岐処理をする基本としてif~else文についてお伝えしました。

これにて、フォルダが既に存在いている場合でも、エラーとならずにフォルダを作成するプログラムを実行することができるようになりました。

次回は、フォルダ名をリストではなくて、テキストファイルから与えることについて考えてみたいと思います。

Pythonでテキストファイルを開いてデータを読み込む基本中の基本
初心者向けにフォルダを作成するツールを作りながらPythonプログラミングの基本を学んでいます。今回はPythonでテキストファイルを開いてデータを読み込む方法です。全体を文字列で&一行ずつリストで読み込みます。

どうぞお楽しみに!

連載目次:【初心者向け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をコピーしました