2016-06-04 2 views
1

제작 디렉토리 :목록에서 makedirs하는 방법과 파이썬에서 하위 디렉토리의 목록을 포함? 사용하여이 목록에서

import os 

cwd = os.getcwd() 
folders = ['file1','file2','file3'] 
for folder in folders: 
    os.mkdir(os.path.join(cwd,folder)) 

또한 이러한 파일, 예를 들어, 각 내에서 세 개의 하위 디렉토리를 추가 하시겠습니까 [ 'SUB1', 'SUB2' 'SUB3를']

시도 뭔가 이 같은 (및 다른 단순한 접근 방식) 성공하지 않고 :

import os 

cwd = os.getcwd() 
folders = ['file1','file2','file3'] 
subfolders = ['sub1','sub2','sub3'] 
for folder in folders: 
    os.makedirs('os.path.join(cwd,folder/subfolders/)') 

어떤 아이디어? 고맙습니다!

답변

2
import os 

cwd = os.getcwd() 
folders = ['file1','file2','file3'] 
subfolders = ['sub1','sub2','sub3'] 

for folder in folders: 
    os.mkdir(os.path.join(cwd, folder)) 

    # Create sub-folders. 
    for sub in subfolders: 
     os.mkdir(os.path.join(cwd, folder, sub)) 
+0

완벽한가, 감사합니다! – user5778614

+0

너무 많은 mkdir 작업에 대해 매우 간결한 해결책은 아니지만 실행 가능하지만 – lulyon

0

하지가 존재하는 경우 makedirs 자동으로 상위 폴더를 생성하기위한 명시 적으로 상위 디렉토리를 생성 할 필요가 없습니다. 솔루션의 경우, 실행 가능한 간결한 코드는 다음과 같이

import os 

cwd = os.getcwd(); 
folders = ['file1','file2','file3'] 
subfolders = ['sub1','sub2','sub3'] 

paths = [os.path.join(cwd, folder, sub) for folder in folders for sub in subfolders] 

for path in paths: 
    os.makedirs(path) 

참고 위의 코드가 두 번째-시도 코드를 조금 수정입니다 :

import os 

cwd = os.getcwd() 
folders = ['file1','file2','file3'] 
subfolders = ['sub1','sub2','sub3'] 
for folder in folders: 
    os.makedirs('os.path.join(cwd,folder/subfolders/)') 
관련 문제