Python-FTP
FTP또는 파일 전송 프로토콜은 네트워크의 컴퓨터간에 파일을 전송하는 데 사용되는 잘 알려진 네트워크 프로토콜입니다. 클라이언트 서버 아키텍처에서 생성되며 사용자 인증과 함께 사용할 수 있습니다. 인증 없이도 사용할 수 있지만 덜 안전합니다. 현재 작업 디렉토리 및 기타 플래그를 유지하는 FTP 연결 및 각 전송에는 데이터가 전송되는 보조 연결이 필요합니다. 대부분의 일반적인 웹 브라우저는 FTP 서버에서 호스팅되는 파일을 검색 할 수 있습니다.
FTP 클래스의 메소드
파이썬에서는 모듈을 사용합니다. ftplib 파일을 전송할 때 파일을 나열하는 데 필요한 방법은 아래와 같습니다.
방법 | 기술 |
---|---|
pwd () | 현재 작업 디렉토리. |
cwd () | 현재 작업 디렉토리를 경로로 변경하십시오. |
dir ([경로 [, ... [, cb]]) | 경로의 디렉토리 목록을 표시합니다. retrlines ()에 전달 된 선택적 콜백 cb. |
폭풍 (cmd, f) | 주어진 FTP cmd (예 : STOR 파일 이름)를 사용하여 텍스트 파일을 업로드합니다. |
storbinary (cmd, f [, bs = 8192]) | storlines ()와 유사하지만 바이너리 파일에 사용됩니다. |
삭제 (경로) | 경로에있는 원격 파일을 삭제합니다. |
mkd (디렉토리) | 원격 디렉토리를 생성합니다. |
예외 ftplib.error_temp | 일시적인 오류를 나타내는 오류 코드 (400–499 범위의 응답 코드)를 수신하면 예외가 발생합니다. |
예외 ftplib.error_perm | 영구적 인 오류를 나타내는 오류 코드 (500–599 범위의 응답 코드)가 수신되면 예외가 발생합니다. |
연결 (호스트 [, 포트 [, 시간 초과]]) | 주어진 호스트 및 포트에 연결합니다. 기본 포트 번호는 FTP 프로토콜에 지정된대로 21입니다. |
떠나다() | 연결을 닫고 종료합니다. |
아래는 위의 방법 중 일부의 예입니다.
파일 나열
아래 예제는 ftp 서버에 대한 익명 로그인을 사용하고 현재 디렉토리의 내용을 나열합니다. 파일 및 디렉토리의 이름을 통해 처리하고 목록으로 저장합니다. 그런 다음 인쇄합니다.
import ftplib
ftp = ftplib.FTP("ftp.nluug.nl")
ftp.login("anonymous", "ftplib-example-1")
data = []
ftp.dir(data.append)
ftp.quit()
for line in data:
print "-", line
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
- lrwxrwxrwx 1 0 0 1 Nov 13 2012 ftp -> .
- lrwxrwxrwx 1 0 0 3 Nov 13 2012 mirror -> pub
- drwxr-xr-x 23 0 0 4096 Nov 27 2017 pub
- drwxr-sr-x 88 0 450 4096 May 04 19:30 site
- drwxr-xr-x 9 0 0 4096 Jan 23 2014 vol
디렉토리 변경
아래 프로그램은 ftplib 모듈에서 사용 가능한 cwd 메소드를 사용하여 디렉토리를 변경 한 다음 필요한 콘텐츠를 가져옵니다.
import ftplib
ftp = ftplib.FTP("ftp.nluug.nl")
ftp.login("anonymous", "ftplib-example-1")
data = []
ftp.cwd('/pub/') change directory to /pub/
ftp.dir(data.append)
ftp.quit()
for line in data:
print "-", line
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
- lrwxrwxrwx 1 504 450 14 Nov 02 2007 FreeBSD -> os/BSD/FreeBSD
- lrwxrwxrwx 1 504 450 20 Nov 02 2007 ImageMagick -> graphics/ImageMagick
- lrwxrwxrwx 1 504 450 13 Nov 02 2007 NetBSD -> os/BSD/NetBSD
- lrwxrwxrwx 1 504 450 14 Nov 02 2007 OpenBSD -> os/BSD/OpenBSD
- -rw-rw-r-- 1 504 450 932 Jan 04 2015 README.nluug
- -rw-r--r-- 1 504 450 2023 May 03 2005 WhereToFindWhat.txt
- drwxr-sr-x 2 0 450 4096 Jan 26 2008 av
- drwxrwsr-x 2 0 450 4096 Aug 12 2004 comp
파일 가져 오기
위와 같이 파일 목록을 가져온 후 다음을 사용하여 특정 파일을 가져올 수 있습니다. getfile방법. 이 방법은 파일 사본을 원격 시스템에서 ftp 연결이 시작된 로컬 시스템으로 이동합니다.
import ftplib
import sys
def getFile(ftp, filename):
try:
ftp.retrbinary("RETR " + filename ,open(filename, 'wb').write)
except:
print "Error"
ftp = ftplib.FTP("ftp.nluug.nl")
ftp.login("anonymous", "ftplib-example-1")
ftp.cwd('/pub/') change directory to /pub/
getFile(ftp,'README.nluug')
ftp.quit()
위의 프로그램을 실행하면 연결이 시작된 로컬 시스템에있는 README.nlug 파일을 찾습니다.