파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지!
#파이썬 ftplib 모듈
#파이썬으로 FTP 로그인하기
#파이썬으로 FTP 파일 전송
오늘은 FTP 서버에 파이썬 스크립트를 통해 연결하고, 서버에 있는 파일 목록을 보는 등의 일련의 작업들을 작성하는 방법에 대해 알아볼꺼에요. 잘 알아두면, FTP와 관련된 작업들을 좀 더 쉽고 빠르게 해결할 수 있답니다!
참고로 저번 시간에 Shell Script를 통해 SSH 연결을 다루는 방법을 포스팅 했었는데요. 궁금하신 분들은 아래의 이전 포스팅을 참고하시기 바랄게요!
자, 그러면 오늘은 FTP를 다룰꺼니까 먼저 파이썬에서 사용할 수 있는 FTP 모듈을 알아봐야겠죠?
바로! ftplib란 모듈입니다.
해당 모듈을 imort해서 사용하기만 하면 되는데요.
참 간단합니다.
먼저 아래의 간단한 예제를 보면서 설명하죠.
from ftplib import FTP
ftp = FTP('ftp.server.com')
ftp.login()
ftp.retrlines('LIST')
위의 예제는 'ftp.server.com'이라는 FTP 서버에 기본 PORT (21)로 Connection을 한 후, anonymous 사용자로 로그인을 하네요.
그리고는 서버에 있는 파일 목록을 가져오는 'LIST' 명령을 실행합니다.
아주 간단하죠?
그럼 서버에 연결을 하면서 바로 아이디와 패스워드를 통해 접근하는 방법은 어떻게 할까요?
import ftplib
ftp = ftplib.FTP('ftp.server.com', 'user', 'password')
그리고 ftp 명령으로 직접 사용하지 않고, ftplib 모듈에서 제공하는 API 기능을 이용하면 좀 더 쉽게 사용할 수 있는데요.
아래 처럼 dir() 함수를 통해 파일 리스트를 가져올 수 있고, cwd() 함수를 통해 현재의 디렉토리를 원하는 디렉토리로 이동할 수 있습니다.
files = ftp.dir()
ftp.cwd("/ftproot/dir")
어때요? 참 간단하죠?
그 밖에도 여러가지 기능을 제공하는데요.
원하는 IP와 포트를 직접 설정해서 연결하고자 할 때에는 아래와 함수를 사용하면 됩니다.
FTP.connect(host[, port[, timeout]])
아이디와 패스워드를 통해 로그인할 때는,
FTP.login([user[, passwd[, acct]]])
파일을 삭제하려면,
FTP.delete(filename)
새로운 디렉토리 생성은,
FTP.mkd(pathname)
현재 디렉토리 위치를 가져오려면,
FTP.pwd()
서버 연결 종료는,
FTP.quit()
FTP.close()
자 ftplib 모듈에 대해서 알아봤는데요. 이제는 쉽게 파이썬으로 FTP 서버에 연결하고 파일을 주고 받을 수 있겠죠? ㅎ