指定場所にフォルダ(ディレクトリ)を作成する


概要


import os
した後に

os.makedirs(新規フォルダの名前)

でその場所にフォルダを作る。
新規フォルダの名前は、フォルダ名だけ入れるとpythonファイルと同じ場所に作る。
階層付きで指定するとその場所に作る
絶対パスで指定してもいい

        
import os
os.makedirs(r'files\file01')
os.makedirs(r'C:\Users\MyName\Documents\file02')
        
      
        
osをインポートする
pythonファイルと同じ場所にfilesフォルダを作り、その下にfile01というフォルダを作れ
C:\Users\MyName\Documents\file02というフォルダを作れ
        
      

print出力

        

        
      

説明


windowsでもmacでもフォルダは右クリックで作れるが
ものすごく大量のフォルダを作ったり
pythonを実行中に名前をコードの中で指定してフォルダを作りたいような場合に使える

たとえばpython実行中に大量のファイルを作成し
そのファイルと同じ名前のフォルダを作ってそこにファイルを格納したいときなど

  

間違えやすい問題


1.すでに指定のフォルダが存在する場合に実行するとエラーになる

階層付きでフォルダを指定した場合、たとえばfiles\file01とした場合
filesフォルダが最初からなければ、filesフォルダが作られてその下にfile01フォルダが作られる
filesフォルダがあればその下にfile01フォルダだけが作られる
指定の場所にすでにfile01フォルダがあればエラーになる
したがって同じ命令を2回繰り返し実行すると当然エラーになる

2.エスケープシーケンスに注意

エスケープシーケンスとは?
特殊な文字を表記するときに、その文字の直前に着ける\をエスケープシーケンスという
windowsでは半角の¥記号,macではバックスラッシュ
これらは使用テキストエディタやhtmlによって表示が入れ替わることがある
エスケープシーケンス自体は改行とかタブとかの意味になることがあり
そのままでは表示することができないことが多い
エスケープシーケンスはファイルの階層に使われるので
今回のようにそのまま表示しなければいけないときは
エスケープシーケンスの前にエスケープシーケンスを入れなければならないため
ファイル階層を示すには
¥¥
のように書かなければならない。


さて、フォルダ場所を絶対パスで指定する場合、windowsならプロパティで絶対パスをコピーして貼り付けるといい
ただしフォルダ名の指定では上記のようにr''のようにエスケープシーケンスを無効にした方がいい

たとえばwindowsではファイルの階層は
file\file01
のように示すが、\はエスケープシーケンスなので実際には
file\\file01
のように2つつけないといけない。これだとなんだか面倒なので
rをつけて
r'file\file01'
とするとエスケープシーケンスを無効にするとわかりやすい
''の前にrをつけるとエスケープシーケンスを無効にできるため