카테고리 없음

파이썬을 사용하여 기존 디렉토리에 전체 디렉토리 파일을 복사하는 방법은 무엇인가요?

스택큐힙리스트 2023. 4. 22. 17:04
반응형

bar 디렉토리(하나 이상의 파일을 포함)와 baz 디렉토리(또한 하나 이상의 파일을 포함)가 포함 된 디렉토리에서 다음 코드를 실행하십시오. foo 디렉토리가 없는지 확인하십시오.

import shutil

shutil.copytree('bar', 'foo')

shutil.copytree('baz', 'foo')

이것은 실패할 것입니다.

$ python copytree_test.py

Traceback (most recent call last):

File copytree_test.py, line 5, in

shutil.copytree('baz', 'foo')

File /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py, line 110, in copytree

File /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py, line 172, in makedirs

OSError: [Errno 17] File exists: 'foo'

이것이 제가 입력한 것처럼 작동되길 바랍니다.

$ mkdir foo

$ cp bar/* foo/

$ cp baz/* foo/

shutil.copy()를 사용하여 baz의 각 파일을 foo으로 복사해야 하나요? ('bar'의 내용을 이미 shutil.copytree()으로 'foo'로 복사한 후) 또는 더 쉬운/좋은 방법이 있나요?

답변 1

여기 표준 라이브러리 일부인 해결책이 있습니다.

from distutils.dir_util import copy_tree

copy_tree(/a/b/c, /x/y/z)

이와 비슷한 질문을 보십시오.

Copy directory contents into a directory with python

참고 - https://docs.python.org/3/distutils/apiref.html#distutils.dir_util.copy_tree

답변 2

파일 및 폴더를 대량으로 이동하거나 복사해야하는 경우, Python은 이 작업을 자동화하는데 매우 효과적입니다. 이 문서에서는 Python을 사용하여 기존 디렉토리에 전체 디렉토리를 복사하는 방법에 대해 설명합니다.

우선, shutil 모듈을 import하여 사용할 수 있습니다. shutil 모듈은 파일 및 디렉토리 작업과 관련된 여러가지 함수가 제공됩니다. 그 중, copytree() 함수는 폴더의 전체 내용을 복사하는 데 사용됩니다. 이 함수에는 두 개의 매개 변수가 필요합니다. 첫 번째 인수는 복사할 디렉토리의 경로이고, 두 번째 인수는 대상 디렉토리의 경로입니다.

예를 들어, 기존의 /home/src/ 폴더에 /home/dest/ 폴더 내용을 복사하려면 다음과 같이 copytree() 함수를 사용합니다.

``` python

import shutil

src_dir = /home/src/

dest_dir = /home/dest/

shutil.copytree(src_dir, dest_dir)

```

위의 코드에서, shutil 모듈의 copytree() 함수를 사용하여 /home/src/ 폴더를 /home/dest/ 폴더로 복사합니다. 이전의 내용은 /home/dest/ 아래에 모두 복사됩니다.

추가로, copytree() 함수는 대상 디렉터리가 이미 존재하면 예외를 발생시킵니다. 이 예외를 방지하려면, exist_ok=True를 설정하여 오류 메시지를 무시하도록 할 수 있습니다.

```python

shutil.copytree(src_dir, dest_dir, exist_ok=True)

```

Python은 파일 및 디렉토리 관리에 대한 강력한 기능을 제공합니다. shutil 모듈을 사용하여 기존 디렉터리에 전체 디렉터리를 복사하는 방법을 배웠습니다. 이제 파일 및 폴더를 대량으로 이동하거나 복사할 때 Python을 사용할 수 있습니다.

반응형