#연구/#Python

파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! #파이썬 ftplib 모듈 #파이썬으로 FTP 로그인하기 #파이썬으로 FTP 파일 전송

every7hing 2021. 1. 6. 21:20
반응형

 

파이썬으로 FTP 로그인 부터 파일 업로드&다운로드까지! 

#파이썬 ftplib 모듈 

#파이썬으로 FTP 로그인하기 

#파이썬으로 FTP 파일 전송

 

 

오늘은 FTP 서버에 파이썬 스크립트를 통해 연결하고, 서버에 있는 파일 목록을 보는 등의 일련의 작업들을 작성하는 방법에 대해 알아볼꺼에요. 잘 알아두면, FTP와 관련된 작업들을 좀 더 쉽고 빠르게 해결할 수 있답니다!

 

참고로 저번 시간에 Shell Script를 통해 SSH 연결을 다루는 방법을 포스팅 했었는데요. 궁금하신 분들은 아래의 이전 포스팅을 참고하시기 바랄게요!

 

2020/12/30 - [#연구/#Tech] - [Bash Script] 쉘 스크립트로 SSH Connection 체크하기 #쉘 스크립트로 파일의 계정 가져와서 SSH Connection 체크하는 방법 #sshpass #쉘 스크립트 while file read

 

[Bash Script] 쉘 스크립트로 SSH Connection 체크하기 #쉘 스크립트로 파일의 계정 가져와서 SSH Connection

[Bash Script] 쉘 스크립트로 SSH Connection 체크하기 #쉘 스크립트로 파일의 계정 가져와서 SSH Connection 체크하는 방법 #sshpass 쉘 스크립트로 간단하게 파일의 계정 정보를 가져와서 While문..

isss.tistory.com

 

자, 그러면 오늘은 FTP를 다룰꺼니까 먼저 파이썬에서 사용할 수 있는 FTP 모듈을 알아봐야겠죠?

바로! ftplib란 모듈입니다.

 

 

ftplib — FTP protocol client — Python 3.9.1 documentation

ftplib — FTP protocol client Source code: Lib/ftplib.py This module defines the class FTP and a few related items. The FTP class implements the client side of the FTP protocol. You can use this to write Python programs that perform a variety of automated

docs.python.org

 

해당 모듈을 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 서버에 연결하고 파일을 주고 받을 수 있겠죠? ㅎ

 

반응형