2017-10-08 13 views
0

나는 지금까지 그물에서 발견 한 많은 가능성을 시도해 봤지만 제대로 작동하지 못했습니다. 이 코드가 있습니다파이썬을 사용하여 하위 폴더를 포함한 모든 파일을 복사하는 방법

def copytree(src, dst, symlinks=False, ignore=None): 
    if not os.path.exists(dst): 
     os.makedirs(dst) 
    for item in os.listdir(src): 
     s = str(os.path.join(src, item)) 
     d = str(os.path.join(dst, item)) 
     if os.path.isdir(s): 
      copytree(s, d, symlinks, ignore) 
     else: 
      if not os.path.exists(d) or os.stat(s).st_mtime - os.stat(d).st_mtime > 1: 
       shutil.copy2(s, d) 

이 코드 나는 새로운 대상 폴더에 하나 개의 소스 폴더에서 모든 파일을 복사 할 수 있습니다 사용합니다. 그러나 원본 폴더에 하위 폴더가 있으면 항상 실패합니다. 복사 할 항목이 폴더 또는 단일 파일인지 여부를 코드에서 이미 확인하고 있으므로이 코드의 문제는 어디에 있습니까?

+0

에서 ['copytree' 기능] 잘못 무엇 (https://docs.python.org/2/library/shutil.html#shutil.copytree) 'shutil' 모듈에서? – rickdenhaan

답변

0

이렇게하려면 import osimport shutil을 사용하는 것이 좋습니다.

예로서이 참조 :

import os 
import shutil 

for root, dirs, files in os.walk('.'): 
    for file in files: 
     path_file = os.path.join(root,file) 
     shutil.copy2(path_file,'destination_directory')