| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- I'm Sorry
- 웹개발
- 파이썬
- 자바스크립트
- 컴퓨터과학
- 디자인패턴
- 데이터분석
- Yes
- 데이터구조
- 데이터과학
- 머신러닝
- 소프트웨어공학
- 클라우드컴퓨팅
- 사이버보안
- 버전관리
- 보안
- 컴퓨터비전
- 인공지능
- 데이터베이스
- 딥러닝
- 자료구조
- 네트워크보안
- 프로그래밍
- springboot
- 컴퓨터공학
- 소프트웨어
- 알고리즘
- 빅데이터
- 프로그래밍언어
- 네트워크
- Today
- Total
스택큐힙리스트
파이썬을 사용하여 기존 디렉토리에 전체 디렉토리 파일을 복사하는 방법은 무엇인가요? 본문
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을 사용할 수 있습니다.