フォルダの作成とファイルの作成
今回は以下を行ってみたいと思います。
・現在のフォルダのパスを取得
・現在のフォルダ内に、フォルダを作成する
※既に作成されている場合は何もしない
・作成したフォルダ内に、テキストファイルを作成する
※既に作成されている場合は何もしない
コード
コードは以下になります。
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import os # /*------------------------------------------ # 絶対パス(現在のフォルダ)を取得、表示 # --------------------------------------------*/ # os.getcwd()で現在のフォルダの絶対パスを取得できる path = os.getcwd() # /*------------------------------------------ # フォルダ内に作成したいフォルダが無い場合のみ作成する # --------------------------------------------*/ New_Dir = "New_Dir" # 存在チェック if os.path.isdir(New_Dir): print("フォルダが存在します") else: print("フォルダが存在しません") # フォルダが存在しない場合のみ、新規作成する if not os.path.exists(New_Dir): print("New_Dirhは未作成なのでフォルダを作成します") os.makedirs(New_Dir) else: print("既にNew_Dirフォルダは作成されているので作成しません") # /*------------------------------------------ # 作成するファイル名を決めて、絶対パスを取得しておく # --------------------------------------------*/ # フォルダ内へのパスを作成する # 絶対パス(pathに、作成したNew_Dirのパスを組み合わせる) New_Dir_Path = os.path.join(path,New_Dir) # "test.txt"というファイル名を格納する New_File_Name = "test.txt" # New_Dir_Pathの直下にtest.txtまでのパスを格納する New_Dir_Path = os.path.join(New_Dir_Path,New_File_Name) # /*------------------------------------------ # 作成したフォルダ内にファイルを作成する # --------------------------------------------*/ # 新規作成時の中身と上書き時の中身 new_text1 = "新規の場合" new_text2 = "上書きの場合" # 絶対パスで指定したファイルが存在していればTrue if os.path.isfile(New_Dir_Path): # ファイルが存在しているなら上書き with open(New_Dir_Path, "w", encoding='utf-8') as f: f.write(new_text2) print("ファイルを上書きしました。") else: # ファイルが存在していないなら新規作成を行う with open(New_Dir_Path, "w", encoding='utf-8') as f: f.write(new_text1) print("ファイルを新規作成しました。") |
解説
1 2 3 4 |
# os.getcwd()で現在のフォルダの絶対パスを取得できる path = os.getcwd() |
現在ファイルを実行しているパスを取得しています。
1 2 3 4 5 6 7 8 9 |
New_Dir = "New_Dir" # 存在チェック if os.path.isdir(New_Dir): print("フォルダが存在します") else: print("フォルダが存在しません") |
1 2 3 4 5 6 7 8 |
# フォルダが存在しない場合のみ、新規作成する if not os.path.exists(New_Dir): print("New_Dirhは未作成なのでフォルダを作成します") os.makedirs(New_Dir) else: print("既にNew_Dirフォルダは作成されているので作成しません") |
os.makedirs(New_Dir)
にてフォルダを新規作成する
1 2 3 4 |
# New_Dir_Pathの直下にtest.txtまでのパスを格納する New_Dir_Path = os.path.join(New_Dir_Path,New_File_Name) |
絶対パスとして取得しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 新規作成時の中身と上書き時の中身 new_text1 = "新規の場合" new_text2 = "上書きの場合" # 絶対パスで指定したファイルが存在していればTrue if os.path.isfile(New_Dir_Path): # ファイルが存在しているなら上書き with open(New_Dir_Path, "w", encoding='utf-8') as f: f.write(new_text2) print("ファイルを上書きしました。") else: # ファイルが存在していないなら新規作成を行う with open(New_Dir_Path, "w", encoding='utf-8') as f: f.write(new_text1) print("ファイルを新規作成しました。") |
今回でいうと「現在のフォルダ/New_Dir/test.txt」が存在していた場合は
Trueが返ってきますね。
Trueが返ってきた場合は上書き。
Falseが返ってきた場合はファイルがない状態なので新規作成。
としています。
変数「new_text1」と「new_text2」には
固定で文字列を格納していますが、こちらに
追記したい値を入力することによって
柔軟な処理が行えそうですね!
以上です。
最後までお読みいただきありがとうございました!