2016-04-08 29 views
1

Python'u kullanarak birden çok farklı klasör içeren birden çok farklı klasörü nasıl oluşturabilirim?
Benim yolum: './work/animals/'. 'Hayvanlar' dizini 'kedi', 'köpek', 'at', 'fare', 'aslan', 'çita', 'fare', 'babun', 'eşek', 'yılan' ve 'zürafa' klasörlerini içerir. '. Tüm hayvan klasörlerini (aşağıdaki kod) oluşturan kısmı yazmayı başarabildim ama aynı zamanda hayvanlardaki tüm klasörlerde 'erkek', 'kadın' ve 'sınıflandırılmamış' olmak üzere üç alt klasör oluşturmak istedim.Python'u kullanarak birden çok farklı klasörde benzer birden çok alt klasör oluşturma

import os 
root_path = './work/animals/' 
folders = ['cat','dog','horse','mouse','lion','cheetah','rat','baboon','donkey','snake','giraffe'] 

for folder in folders: 
    os.mkdir(os.path.join(root_path,folder)) 
+0

Eğer oluşturmak istediğiniz bu dizinlerin yolları dışarı yazabilir mi? Bu sizi doğru yönde göstermelidir. –

+0

http://stackoverflow.com/questions/14506864/create-new-folders-within-multiple-existing-folders-with-python?rq=1 adresini kontrol ettiniz mi? – MikeC

cevap

1

Nasıl basitçe yapmayı:

import os 
root_path = './work/animals/' 
folders = ['cat','dog','horse','mouse','lion','cheetah','rat','baboon','donkey','snake','giraffe'] 
subfolders = ['male', 'female', 'uncategorized'] 
for folder in folders: 
    os.mkdir(os.path.join(root_path,folder)) 
    for subfolder in subfolders : 
     os.mkdir(os.path.join(root_path,folder,subfolder)) 
1

İstediğiniz hayvanların artı cinsiyet kombinasyonları almak için itertools.product kullanmak ve sonra sizin için ara dizinleri yaratacak os.makedirs kullanabilirsiniz.

import os 
import itertools 

root_path = './work/animals/' 

folders = ['cat','dog','horse','mouse','lion','cheetah','rat','baboon','donkey','snake','giraffe'] 
genders = ['male', 'female', 'uncategorized'] 

for folder,gender in itertools.product(folders, genders): 
    os.makedirs(os.path.join(root_path,folder,gender))