간혹가다가 FTP에 업로드 및 다운로드를 해야 하는 경우가 있다.
파이썬으로 FTP 를 사용해보자.
아래는 FTP를 이용한 예제 목차이다.
- 파일다운로드
- 파일업로드
- 다건 파일다운로드
- 다건 파일업로드
- 파일이름변경
- 서버에 폴더 생성
- 서버 폴더 삭제
- 현재 폴더 리스트 출력
- FTP 메서드 정리
ftp = ftplib.FTP() : FTP 새 인스턴스를 생성한다.
ftp.connect(host,port) : host,port로 ftp 연결한다. 기본포트는 21
ftp.login(user,passwd) : user,passwd로 로그인 한다.
ftp.retrbinary(cmd, file): 파일을 바이너리로 다운로드 한다.
[cmd] 'RETR filename' 로 RETR은 정적이며 filename은 ftp에 있는 파일명이다.
[file] 다운로드할 파일
ftp.storbinary(cmd,file) : 파일을 바이너리로 업로드 한다.
[cmd] 'STOR filename' 로 STOR은 정적이며 filename은 ftp에 있는 파일명이다.
[file] 업로드할 파일
ftp.nlst() : 현재 폴더의 파일 리스트를 반환한다.
ftp.dir() : 현재 폴더 디렉토리 목록을 표준 출력 반환한다.
ftp.rename(fromname,toname) : fromname 파일을 toname으로 변경한다.
ftp.delete(filename) : 서버의 파일을 삭제한다.
ftp.cwd(pathname): 서버의 현재 폴더로 이동
ftp.mkd(pathname): 서버의 새 폴더생성
ftp.rmd(dirname) : 서버의 폴더 삭제
- 공통 import
아래 코드를 돌릴시 ftplib, os 를 import 한다.
1
2
|
import ftplib
import os
|
cs |
- 파일 다운로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
###############
# 파일 다운로드
###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 파일다운로드
with open(file=r'c:\chosun.png', mode='wb') as rf:
ftp.retrbinary('RETR chosun.png', rf.write)
except Exception as e:
print(e)
|
cs |
- 다건 파일다운로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
# ###############
# # 다건 파일 다운로드
# ###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 파일다운로드
list = ftp.nlst()
print(list)
for file in list :
with open(file=r'c:\tmp\{}'.format(file), mode='wb') as rf:
ftp.retrbinary('RETR {}'.format(file), rf.write)
except Exception as e:
print(e)
|
cs |
- 파일업로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
###############
# 파일 업로드
###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 파일업로드
with open(file=uploadFile, mode='rb') as wf:
ftp.storbinary('STOR 3.ttf', wf)
print(ftp.dir())
except Exception as e:
print(e)
|
cs |
- 다건 파일 업로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
##############
# 다건 파일 업로드
##############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 파일다운로드
list = os.listdir(r'c:\tmp')
print(list)
for file in list :
with open(file=r'c:\tmp\{}'.format(file), mode='rb') as f:
ftp.storbinary('STOR {}'.format(file), f)
print(ftp.dir())
except Exception as e:
print(e)
|
cs |
- 파일 이름변경
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
###############
# 파일 이름변경
###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 파일 이름변경
print(ftp.dir())
ftp.rename('4.ttf','3.ttf')
print(ftp.dir())
except Exception as e:
print(e)
|
cs |
- 파일 삭제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
###############
# 파일 삭제
###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 파일 이름변경
print(ftp.dir())
ftp.delete('agentlog.txt')
print(ftp.dir())
except Exception as e:
print(e)
|
cs |
- 서버 폴더 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
###############
# 서버 폴더 생성
###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 서버 폴더 생성
print(ftp.dir())
ftp.mkd('test')
print(ftp.dir())
except Exception as e:
print(e)
|
cs |
- 서버 폴더 삭제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
###############
# 서버 폴더 삭제
###############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 서버 폴더 삭제
print(ftp.dir())
ftp.rmd('test')
print(ftp.dir())
except Exception as e:
print(e)
|
cs |
- 현재 폴더 리스트 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# ftp 정보
host = '111.111.111.11'
user = 'root'
passwd = '1111111'
# 파일정보
uploadFile = r'c:\3.ttf'
##############
# 현재 폴더 리스트 출력
##############
try:
# ftp 연결
with ftplib.FTP() as ftp:
ftp.connect(host=host,port=21)
ftp.encoding = 'utf-8'
ftp.encoding = 'utf-8'
s = ftp.login(user=user,passwd=passwd)
ftp.cwd('/home/f10024') # 현재 폴더 이동
# 현재 폴더 리스트 출력
print(ftp.nlst())
except Exception as e:
print(e)
|
cs |
'python' 카테고리의 다른 글
vscode interpreter 설정하기 (0) | 2022.02.02 |
---|---|
pip is configured with locations that require TLS/SSL 문제 해결 (2) | 2020.06.29 |
if __name__ == '__main__' 은 무엇인가 (1) | 2020.06.03 |
파이썬 모듈 사용하기 (1) | 2020.06.03 |
파이썬 제어문(if) 정리 (0) | 2020.05.25 |