[python] 파일을 다운로드하기

인터넷에서 파일을 다운로드하는 것은 많은 프로그램에서 필요한 기능입니다. 이번에는 Python을 사용하여 파일을 다운로드하는 방법을 알아보겠습니다.

urllib 라이브러리 사용하기

Python의 표준 라이브러리인 urllib을 사용하면 간단하게 파일을 다운로드할 수 있습니다. 다음은 urllib.request 모듈을 사용하여 파일을 다운로드하는 예제입니다.

import urllib.request

url = "파일의 URL"
파일명 = "다운로드할 파일의 이름"

urllib.request.urlretrieve(url, 파일명)

위 예제에서 url 변수에는 다운로드할 파일의 URL을, 파일명 변수에는 저장될 파일의 이름을 지정합니다. urllib.request.urlretrieve 함수를 호출하면 파일이 지정된 이름으로 현재 디렉토리에 저장됩니다.

requests 라이브러리 사용하기

requests 라이브러리는 보다 간편하고 직관적인 인터페이스로 파일을 다운로드할 수 있는 기능을 제공합니다. requests 라이브러리가 설치되어 있지 않다면 먼저 설치해야 합니다.

import requests

url = "파일의 URL"
파일명 = "다운로드할 파일의 이름"

response = requests.get(url)
with open(파일명, "wb") as 파일:
    파일.write(response.content)

위 예제에서 url 변수에는 다운로드할 파일의 URL을, 파일명 변수에는 저장될 파일의 이름을 지정합니다. requests.get 함수를 호출하여 파일의 내용을 가져온 후, open 함수와 write 메서드를 이용하여 파일로 저장합니다. "wb"는 이진 파일을 쓰기 모드로 열기 위한 옵션입니다.

예외 처리하기

파일 다운로드 중에 예외가 발생할 수 있다는 것을 염두에 두고 예외 처리를 해주는 것이 좋습니다. 다음은 예외 처리를 추가한 예제입니다.

import requests

url = "파일의 URL"
파일명 = "다운로드할 파일의 이름"

try:
    response = requests.get(url)
    response.raise_for_status()  # HTTP 상태코드가 200이 아니면 예외 발생
    with open(파일명, "wb") as 파일:
        파일.write(response.content)
except requests.exceptions.RequestException as e:
    print("파일을 다운로드하지 못했습니다:", e)

예제에서 response.raise_for_status()는 HTTP 상태코드가 200이 아닐 경우 예외를 발생시킵니다. 이를 통해 파일이 정상적으로 다운로드되는지 확인할 수 있습니다.

결론

Python을 사용하여 파일을 다운로드하는 방법을 알아보았습니다. urllib이나 requests 라이브러리를 이용하면 웹 상의 파일을 손쉽게 다운로드할 수 있습니다. 파일 다운로드 과정에서 발생하는 예외에 대비하여 예외 처리도 적절히 해주는 것이 좋습니다.

참고 자료: