2011-01-20 18 views
1

データベースから取得した文字列に基づいてフォルダとサブフォルダを作成するコードを作成しています。ダイナミックです。 1つのレベル、2つのレベル、または10である可能性があります。文字列から動的にフォルダツリーを作成する

私はスラッシュドットを交換し、適切なツリーを作成しようとしているが、以下、このコードは仕事をしません。

for x in i.publish_app.split('.'): 
    if not os.path.isdir(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT) + x + '/'): 
     os.mkdir(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT) + x + '/') 

i.publish_appは、例えば、'apps.name.name.another.name'です。

どうすればいいですか?

答えて

14
os.makedirs(path[, mode]) 

再帰的なディレクトリ作成関数です。 mkdir()と似ていますが、すべて の中間レベルのディレクトリには、リーフディレクトリを含めるのに が必要です。リーフ ディレクトリがすでに存在する場合、または が作成されていない場合は、 がエラー例外を発生させます。デフォルトモードは0777 (8進数)です。一部のシステムでは、モードは が無視されます。使用されている場合、現在の のumask値が最初にマスクされます。

ストレートthe docs。あなたはそれがmkdir -pのように振る舞うために必要がある場合

+1

thanks mate。どのように私はそれを逃したのか分からない、Pythonは本当に何かです:) –

1

なぜあなただ​​けやっていません。

os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT,x,"")

を(最後,""が終わり\または/を追加することですが、私はあなたがディレクトリを作ってそれを必要としないと思います)

関連する問題