[파이썬] shutil을 사용하여 웹 콘텐츠 다운로드 및 관리하기

이번 포스트에서는 파이썬의 shutil 모듈을 사용하여 웹 콘텐츠를 다운로드하고 관리하는 방법에 대해 알아보겠습니다.

shutil 모듈

shutil은 파이썬 내장 모듈로, 파일 및 디렉토리 작업을 지원하는 유틸리티 함수들을 제공합니다. 이 모듈을 사용하면 파일 및 디렉토리를 복사, 이동, 삭제 및 압축하는 등의 작업을 간편하게 수행할 수 있습니다.

웹 콘텐츠 다운로드

shutil 모듈은 웹에서 파일을 다운로드하는 기능을 제공하지는 않지만, urllib.request 모듈과 함께 사용하면 간단하게 웹 콘텐츠를 다운로드할 수 있습니다.

import shutil
import urllib.request

url = 'https://example.com/image.jpg'
file_name = 'image.jpg'

with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:
    shutil.copyfileobj(response, out_file)

위의 예제에서는 urllib.request.urlopen() 함수를 사용하여 웹 페이지에 접근하고, shutil.copyfileobj() 함수를 사용하여 응답 데이터를 파일에 복사합니다. 이를 통해 웹 콘텐츠를 다운로드할 수 있습니다.

파일 및 디렉토리 관리

또한 shutil 모듈은 파일과 디렉토리를 간편하게 관리할 수 있는 다양한 기능을 제공합니다. 예를 들어, 특정 디렉토리의 내용을 다른 디렉토리로 복사하거나, 파일을 이동하거나, 디렉토리를 삭제하는 등의 작업을 수행할 수 있습니다.

아래는 몇 가지 예제 코드입니다.

디렉토리 복사

import shutil

src_dir = 'path/to/source_directory'   # 복사할 디렉토리 경로
dst_dir = 'path/to/destination_directory'  # 복사된 디렉토리 경로

shutil.copytree(src_dir, dst_dir)

파일 이동

import shutil

src_file = 'path/to/source_file'   # 이동할 파일 경로
dst_dir = 'path/to/destination_directory'  # 파일을 이동할 디렉토리 경로

shutil.move(src_file, dst_dir)

디렉토리 삭제

import shutil

dir_to_delete = 'path/to/directory_to_delete'   # 삭제할 디렉토리 경로

shutil.rmtree(dir_to_delete)

위의 예제 코드를 사용하면 shutil을 이용하여 파일 및 디렉토리를 효과적으로 관리할 수 있습니다.

마무리

이번 포스트에서는 shutil 모듈을 사용하여 웹 콘텐츠를 다운로드하고 관리하는 방법에 대해 알아보았습니다. shutil은 유연하고 편리한 기능을 제공하기 때문에 파일 및 디렉토리 작업을 수행할 때 유용하게 사용될 수 있습니다. 다음번에 파일이나 디렉토리를 다룰 때는 shutil 모듈을 고려해보세요.