Pythonで店舗や支店の空フォルダを複数瞬時に作る

今回は複数の空フォルダを自動生成するプログラムをPythonでつくります。これで支店や部署ごとに空フォルダを毎回作成する作業を自動化できます。

手作業では、「右クリック ▶ 新規作成 ▶ フォルダ」で作成できますが、数多くなると結構な時間がかかります。プログラムで自動化するのに格好の作業です。

今回は店舗コードと店舗名のCSVファイルから読み込み、名前が店舗コード_店舗名のフォルダを自動作成します。店舗コードを先頭につけることで、エクスプローラーで見やすくなります。

このプログラムを使えば、フォルダの数が100個でも毎回あっという間に作成できます。

この記事の目次

プログラムの動作

今回作成するプログラムは、以下のように、店舗コードのCSVファイルを読み取り、店舗名の空フォルダを自動作成します。

python automation 3th practice

準備(Pythonのインストール)

以下の記事を参考にWindowsにPythonをインストールしてください。

Pythonのコードを実行するには、パソコンにPythonをインストールする必要がありますが、ご安心ください。Pythonのインストールは非常に簡単です。 Python公式のインストーラーがある…

プログラミング

早速プログラミングします。以下の手順で実際に実行してください。

1. メニューからPythonのIDLEを開きます。

python idle select from menu

2. エディタを開いて、コードを貼り付ける

IDLEツールバーのメニューから File ▶ New File を選択してエディタを開いてください。

idle new editor

そこに、以下のプログラムコードをコピーして貼り付けてください。

import os
import csv

stores_path = "店舗コード.csv"

with open(stores_path, encoding="cp932") as f:
    reader = csv.reader(f)
    for row in reader:
        folder_name = row[0] + '_' + row[1]
        if not os.path.exists(folder_name):
            os.mkdir(folder_name)

IDLEのエディタには以下のように貼り付けます。

python editor copy code

3. コードの保存

IDLEエディタのツールバーのメニューから File ▶ Save を選択して、make_folders.pyという名前で、適当なフォルダに保存します。

サンプルファイル

以下のサンプルファイルをダウンロードして解凍したら、プログラムと同じフォルダにコピーします

サンプルファイル(stores.zip)のダウンロード

ファイル(店舗コード.csv)の中身は、以下のようになっています。

stores code list

プログラム実行

WindowsにPythonをインストールすると、拡張子がpyのPythonファイルはダブルクリックで実行できますので、make_folders.pyダブルクリックしてください。

同じフォルダにある店舗コード.csvを読み取り、以下のように各店舗のフォルダを作成します。

created folders

その他の実行方法

以下のようにIDLEのツールバーのメニューから Run ▶ Run Module を選択してもプログラムを実行できます。

python idle select from menu

カスタマイズ例

今回のコードをベースに以下のようなカスタマイズが考えられます。

ケース1:「店舗コード.csv」にヘッダーがある場合

以下のように店舗コードのファイルにヘッダーがある場合も多いと思います。

created folders

そのような場合は、以下のようにnext(reader)により、先頭の1行を読み飛ばせば大丈夫です。

import os
import csv

stores_path = "店舗コード.csv"

with open(stores_path, encoding="cp932") as f:
    reader = csv.reader(f)
    # ヘッダーを読み飛ばす
    next(reader)
    for row in reader:
        folder_name = row[0] + '_' + row[1]
        if not os.path.exists(folder_name):
            os.mkdir(folder_name)
ケース2:「店舗コード.csv」が共有フォルダにある場合

店舗コードのファイルは、マスターを共有フォルダで管理している場合が多いと思います。

そのような場合、ホストのコンピューター名がmain-host、共有フォルダ名がShared Foldersであれば、以下のようにファイル名(stores_path)を指定すれば、読み込むことができます(このようにネットワーク環境でコンピューター名を指定するのをUNCパスといいます)。

unc path

ただし、ここで注意が必要なのは、r'¥¥path¥file' のように、先頭に r を付けてください。これは、raw文字列と呼ばれるもので、クォートで囲まれた文字列をそのまま表示します。

このrを付けないと、¥t¥nは、タブや改行の意味になってしまいます(これはエスケープシーケンスといいます)。