はじめに
どうもMizokeiです。
社内のシステム担当という立場だと、自動的にフォルダを作成するスクリプトは意外にも役立ちます。
定期的にCSVダウンロードしたファイルを日付ごとに区切ってフォルダに格納しておいたり、バックアップを取ったり…。中には、他部署の人とのやり取りで定期的にデータを共有するかもしれません。
そんなときに、自動的にフォルダを作成するスクリプトがあると非常に便利です。簡単に作れるので、記載しておきますね。以下、実行環境です。
実行環境
- Windows10 64bit
- Python 3.7
まずはモジュールのインポートから
今回は、以下の2つのモジュールを使用します。フォルダ名に日付を入れるので、datetimeを使用していますが、単純にフォルダを作成するだけですと、osモジュールのみで問題ありません。
- os
- datetime
以下のコードでインポートします。
0 1 2 3 4 5 6 |
#フォルダの存在確認 import os #日付を取得 import datetime as dt |
フォルダ名用に日付を取得してフォルダ名を作る
まずは以下のコードで日付を取得しましょう。
0 1 2 3 |
#現在時刻を取得 dt_now = dt.datetime.now() |
次に、yyyymmddを文字として取得したいので、yyyymmddのフォーマットで文字列を取得します。
0 1 2 3 |
#フォルダ名用にyyyymmddの文字列を取得する yyyymmdd = dt_now.strftime('%Y%m%d') |
そして、フォルダ名として文字列を定義しましょう。今回は、「自動作成」という文言を追加してみます。
0 1 2 3 |
#作成するフォルダ名を定義する directory_name = u'自動作成_' + yyyymmdd |
プログラムファイルのフォルダパスを取得する
フォルダの存在確認のために、今実行しているPythonスクリプトのフォルダパスを取得しなければなりませんね。以下のコードで、スクリプトの絶対パスを取得しましょう。
0 1 2 3 |
#現在のフォルダパスを取得する(プログラムが実行されているフォルダパス) current_directory = os.path.dirname(os.path.abspath(__file__)) |
先程定義したフォルダ名と連結し、作成するフォルダパスを作ります。
0 1 2 3 |
#作成のために確認するフォルダパスを作成する create_directory = current_directory + '\\' + directory_name |
フォルダの存在有無チェック
フォルダを作成する前に、すでにフォルダが存在するか確認したほうが良いでしょう。以下のif文コードで、対象のフォルダがあるかどうかを判定します。
0 1 2 3 |
#対象フォルダが存在しない場合 if(not (os.path.exists(create_directory))): |
対象フォルダが無ければ作成するので、以下のコードで、フォルダを自動的に作りましょう。
0 1 2 3 |
#フォルダを作成 os.mkdir(create_directory) |
実行してみる…
スクリプトを実行すると、今日の日付20200121を含むフォルダが作成されていますね。いい感じです。
このスクリプトを単体で使用するというよりは、タスクスケジューラ等で、定期的にこのpythonスクリプトを実行するように設定しておくと、毎日のフォルダを自動作成してくれるので便利ですね。
数行のコードでフォルダ作成できる
以下のコードが今回作成したスクリプトコードの全文です。いろいろコメントを付けてもそんなに長くないプログラムですよね。コピペしていろいろ変えて使ってみてください。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# -*- coding: utf-8 -*- #!/usr/bin/env python ''' 当日日付をフォルダ名に持つフォルダを、自動作成するスクリプト。 フォルダの存在確認をして、無ければフォルダを作成する。 ''' # # 標準ライブラリ # #フォルダの存在確認 import os #日付を取得 import datetime as dt #メイン処理 if __name__ == '__main__': #現在時刻を取得 dt_now = dt.datetime.now() #フォルダ名用にyyyymmddの文字列を取得する yyyymmdd = dt_now.strftime('%Y%m%d') #作成するフォルダ名を定義する directory_name = u'自動作成_' + yyyymmdd #現在のフォルダパスを取得する(プログラムが実行されているフォルダパス) current_directory = os.path.dirname(os.path.abspath(__file__)) #作成のために確認するフォルダパスを作成する create_directory = current_directory + '\\' + directory_name #対象フォルダが存在しない場合 if(not (os.path.exists(create_directory))): #フォルダを作成 os.mkdir(create_directory) |
この記事が誰かの役に立てれば幸いです。それでは。
関連記事
【Python】ピクセル値を操作して画像を作成してみよう【画像処理】
【Python×業務自動化】Excelを起動する【RPA】
【Python超入門】クラスを作成してみよう