Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 FTP를 사용하는 방법 – ftplib 모듈 완벽 가이드

Python의 ftplib 모듈이란?

Python에서 FTP(File Transfer Protocol) 작업을 수행하려면 기본으로 제공되는 ftplib 모듈을 사용하면 됩니다. 별도의 외부 라이브러리 설치 없이 바로 사용할 수 있으며, 이 모듈을 활용하면 다양한 FTP 자동화 작업을 수행하는 프로그램을 쉽게 작성할 수 있습니다.

예를 들어 FTP 서버에 접속하여 파일 목록을 가져오거나, 원격 서버의 파일을 로컬로 다운로드한 후 처리하는 등의 작업을 몇 줄의 코드로 구현할 수 있습니다.

FTP 서버에 연결하고 파일 목록 출력하기

다음 예제는 FTP 서버에 접속한 후, 해당 서버 홈 디렉터리의 파일 목록을 출력하는 코드입니다.

import ftplib

# FTP 서버에 접속 (호스트 주소, 사용자 이름, 비밀번호 입력)
ftp = ftplib.FTP('ftp.yourserver.com', 'yourusername', 'yourpassword')

print("File List: ")
files = ftp.dir()   # 현재 디렉터리의 파일 목록 출력
print(files)

ftp.cwd("/tmp")     # 작업 디렉터리를 /tmp로 변경

코드 설명

  • ftplib.FTP(): 호스트 주소, 사용자 이름, 비밀번호를 인자로 전달하여 FTP 서버에 로그인합니다.
  • ftp.dir(): 현재 작업 디렉터리에 있는 파일과 폴더 목록을 출력합니다.
  • ftp.cwd(): 원격 서버의 작업 디렉터리를 변경합니다. 위 예제에서는 /tmp 디렉터리로 이동합니다.

파일 다운로드 예제

서버에 있는 파일을 로컬 컴퓨터로 내려받으려면 retrbinary() 메서드를 사용합니다.

import ftplib

ftp = ftplib.FTP('ftp.yourserver.com', 'yourusername', 'yourpassword')

# 서버의 sample.txt 파일을 로컬에 저장
with open('sample.txt', 'wb') as f:
    ftp.retrbinary('RETR sample.txt', f.write)

ftp.quit()   # 연결 종료

마무리

이처럼 Python의 ftplib 모듈을 사용하면 FTP 서버 연결, 디렉터리 탐색, 파일 업로드 및 다운로드 등 반복적인 전송 작업을 자동화할 수 있습니다. 참고로 보안이 중요한 환경에서는 일반 FTP 대신 FTPS(FTP over TLS)나 SFTP를 사용하는 것이 좋으며, SFTP는 paramiko 같은 외부 라이브러리를 통해 구현할 수 있습니다.