본문 바로가기

DEV/Python

[Python] FTPlib

반응형

파이썬으로 FTP를 사용할 때 ftplib를 사용하면 편리합니다.

 

import ftplib ftp = ftplib.FTP(timeout = 100)
#패시브 모드 ftp.set_pasv(true)
#서버 연결 ftp.connect('IP', 'PORT')
#계정 로그인 ftp.login('ID', 'PW')
#현재 디렉토리 표시 ftp.pwd()
#디렉토리 이동 ftp.cwd(path)
#디렉토리 생성 ftp.mkd(path)

 

파일 또는 디렉토리가 현재 경로상에 있는지 확인

def exist(fname):
	if fname in ftp.nlst():
    	return True
    return False

 

디렉토리 생성 후 이동

- 디렉토리가 없으면 생성하고 그 경로로 이동시켜줌

def chdir(fpath):
	for path in fpath.split('/'):
   		if len(path) == 0: continue
        if exist(path):
        	ftp.cwd(path)
        else:
        	ftp.mkd(path)
            ftp.cwd(path)

 

파일 업로드
- 로컬 경로의 파일을 서버 경로에 업로드

def upload(path, local_path, fname):   
	ftp.storbinary('STOR ' + fname, open(local_path, 'rb')) # r: 읽기전용, b:바이너리 모드

 

파일 다운로드

- 서버 경로의 파일을 로컬 경로로 다운로드

def download():
	fd = open('저장될 로컬 경로' + fname, 'wb') # w: 쓰기전용, b: 바이너리 모드
	ftp.retrbinary('RETR' + fname, fd.write)

 

반응형