フォルダーを作る(Python学習)

ファイルリスト

Pythonを使ってPython講座に使うファイルの自動作成に挑戦しています。今回は5回目です。 前回の記事はコチラになります。

hirocom777.hatenadiary.org

前回は作成するファイル名のリストを自動化しました。最終的にはテキストファイルによる受け渡しも廃止して、ファイル作成と一緒にする事でスッキリした内容になりました。

ところでPython講座は複数回にわたって開講されています。毎回の演習は回数ごとにフォルダーを作って管理します。今回はそのフォルダーの作成に挑戦します。

osモジュール

今までの連載では、組み込み関数を使ってファイルを作成してきました。でも、残念ながらフォルダーの作成は組み込み関数ではできません。フォルダーの作成はosモジュールを使用します。osモジュールとはWindowsなどのOSに依存するファイル操作などの機能をPythonでできるようにするためのモジュールです。

osモジュールを使用してフォルダーを作成するには以下の様に記述します。osモジュールを使用するには、最初にインポートしなければなりません。

# モジュールのインポート
import os
# フォルダーを作成する
os.mkdir(フォルダーのパス)

フォルダー名を指定して、指定したフォルダーがない場合にフォルダーを作成するプログラムを書いてみます。フォルダーの確認は以下になります。

# フォルダーの有無を確認
os.path.isdir(フォルダーのパス)

フォルダーが存在していればTrue、存在していなければFalseを返します。プログラムは以下の様になります。

# フォルダー名を指定して、指定したフォルダーが無い場合はフォルダーを作る。
import os
path = input("フォルダー名")
if os.path.isdir(path):
    print(f"{path}はすでにあります") 
else:
    os.mkdir(path)
    print(f"{path}を作成しました")

ちなみに、ファイルの有無を確認やファイル、フォルダー両方の確認する場合は

# ファイルの有無を確認
os.path.isfile(ファイル名)
# ファイル、フォルダー両方の確認
os.path.exists(ファイル名、またはフォルダーのパス)

で可能です。

複数のフォルダーを作る

それではPython講座の回数分のフォルダーを作ってみましょう。Python講座は全部で7回開催されます。フォルダー名は2桁の通し番号と、アンダースコアの後に各講座のタイトルとしたいと思います。

# Python講座の回数分のフォルダーを作る
import os
titlelist = [
'はじめてのPython、変数、演算、データ型',
'制御構文、関数',
'リスト、タプル、辞書',
'組み込み関数、オブジェクト',
'スクレイピング基礎',
'スクレイピング実践',
'Pandasによるデータ処理']
i = 0
for foldername in titlelist:
    i += 1
    foldername = str(i).rjust(2,'0') + '_' + foldername
    os.mkdir(foldername)
print('Python講座のフォルダーを作成しました')

ファルダーができているか確認してみましょう。指定されたパス内のファイル、フォルダーのリストを取得するには以下を使います。

# ファイル、フォルダーのリストを取得
os.path.listdir(検索するパス)

ただし、これだけだとフォルダーだけでなくファイルも一緒に取得されてしまいます。フォルダー名だけを取得するために、以下のプログラムを書きました。

# フォルダー名だけを表示
import os
for foldername in os.listdir():
    if os.path.isdir(foldername):
        print(foldername) 

実行してみると、以下の様になりました。

01_はじめてのPython、変数、演算、データ型
02_制御構文、関数
03_リスト、タプル、辞書
04_組み込み関数、オブジェクト
05_スクレイピング基礎
06_スクレイピング実践
07_Pandasによるデータ処理

ちゃんとフォルダーが作成されています。

その他のメソッド

osモジュールには他にもたくさんのメソッドがありますが、そのうちファイル操作に関する物を紹介します。

os.rename()

ファイル名、フォルダー名を変更します。記述方法は以下の通り。

# ファイル名の変更
os.path.rename(対象のファイル名、変更後のファイル名)

os.rmdir()

引き数で指定したフォルダーを削除します。

os.remove()

引き数で指定したファイルを削除します。

最後に

いかがでしょうか?Python講座に使うファイルの自動作成の連載は今回で終わりです。ファイルを作成した入り書き込んだりなどのファイル操作は、プログラムを作成する際によく出てくる内容です。Pythonでは他にもファイル操作に関する方法やライブラリが用意されています。調べていくと、いい学びになるでしょう。 また別の連載でお会いしましょう。最後までお付き合いいただきありがとうございました。 次回は番外編。卒業LT大会で必要な発表順番決めツールを作ります。お楽しみに!! hirocom777.hatenadiary.org