반응형
Python을 사용하여 디렉토리 내용을 디렉토리에 복사
이 질문에 이미 답변이 있습니다.
파일과 하위 디렉토리가있는 / a / b / c 디렉토리가 있습니다. / x / y / z 디렉토리의 / a / b / c / *를 복사해야합니다. 어떤 파이썬 메서드를 사용할 수 있습니까?
나는 시도 shutil.copytree("a/b/c", "/x/y/z")
했지만 파이썬은 / x / y / z를 만들고 error "Directory exists"
.
이 코드가 작동하는 것을 발견했습니다.
from distutils.dir_util import copy_tree
# copy subdirectory example
fromDirectory = "/a/b/c"
toDirectory = "/x/y/z"
copy_tree(fromDirectory, toDirectory)
참고:
- Python 2 : https://docs.python.org/2/distutils/apiref.html#distutils.dir_util.copy_tree
- Python 3 : https://docs.python.org/3/distutils/apiref.html#distutils.dir_util.copy_tree
from subprocess import call
def cp_dir(source, target):
call(['cp', '-a', source, target]) # Linux
cp_dir('/a/b/c/', '/x/y/z/')
그것은 나를 위해 작동합니다. 기본적으로 쉘 명령 cp를 실행 합니다.
glob2를 사용하여 모든 경로를 재귀 적으로 수집 (** 하위 폴더 와일드 카드 사용) 한 다음 shutil.copyfile을 사용하여 경로를 저장할 수도 있습니다.
glob2 링크 : https://code.activestate.com/pypm/glob2/
python libs는이 함수에서 사용되지 않습니다. 올바르게 작동하는 작업을 수행했습니다.
import os
import shutil
def copydirectorykut(src, dst):
os.chdir(dst)
list=os.listdir(src)
nom= src+'.txt'
fitx= open(nom, 'w')
for item in list:
fitx.write("%s\n" % item)
fitx.close()
f = open(nom,'r')
for line in f.readlines():
if "." in line:
shutil.copy(src+'/'+line[:-1],dst+'/'+line[:-1])
else:
if not os.path.exists(dst+'/'+line[:-1]):
os.makedirs(dst+'/'+line[:-1])
copydirectorykut(src+'/'+line[:-1],dst+'/'+line[:-1])
copydirectorykut(src+'/'+line[:-1],dst+'/'+line[:-1])
f.close()
os.remove(nom)
os.chdir('..')
참고 URL : https://stackoverflow.com/questions/15034151/copy-directory-contents-into-a-directory-with-python
반응형
'programing tip' 카테고리의 다른 글
새로운 Google Now 및 Google+ 카드 인터페이스 (0) | 2020.12.08 |
---|---|
ASP.NET MVC 4 응용 프로그램 호출 원격 WebAPI (0) | 2020.12.08 |
사용자 정의 비교기를 사용하여 C ++에서 priority_queue 선언 (0) | 2020.12.08 |
Python의 다른 모듈에서 클래스를 패치하는 Monkey (0) | 2020.12.08 |
npm 패키지를 제거하는 방법은 무엇입니까? (0) | 2020.12.08 |