ftplib — FTP 프로토콜 클라이언트
ftplib — FTP 프로토콜 클라이언트
이 모듈은 FTP 클래스와 몇 가지 관련 항목을 정의합니다. FTP 클래스는 FTP 프로토콜의 클라이언트 측을 구현합니다. 이것을 사용해 다른 FTP 서버를 미러링하는 것과 같은 다양한 자동화 FTP 작업을 수행하는 Python 프로그램을 작성할 수 있습니다. 또한 urllib.request 모듈이 FTP를 사용하는 URL을 처리하는 데도 사용됩니다. FTP(파일 전송 프로토콜)에 대한 자세한 내용은 인터넷 RFC 959를 참조하세요.
본문
기본 인코딩은 RFC 2640에 따라 UTF-8입니다. 사용 가능한 환경: WASI 아님 — WebAssembly에서는 동작하지 않거나 사용할 수 없습니다.
ftplib 모듈을 사용한 샘플 세션:
>>> from ftplib import FTP
>>> ftp = FTP('ftp.us.debian.org') # connect to host, default port
>>> ftp.login() # user anonymous, passwd anonymous@
'230 Login successful.'
>>> ftp.cwd('debian') # change into "debian" directory
'250 Directory successfully changed.'
>>> ftp.retrlines('LIST') # list directory contents
...
'226 Directory send OK.'
>>> with open('README', 'wb') as fp:
>>> ftp.retrbinary('RETR README', fp.write)
'226 Transfer complete.'
>>> ftp.quit()
'221 Goodbye.'
FTP 객체
class ftplib.FTP(host='', user='', passwd='', acct='', timeout=None, source_address=None, *, encoding='utf-8') — FTP 클래스의 새 인스턴스를 반환합니다.
매개변수:
host(str) — 연결할 호스트 이름. 주어지면 생성자가connect(host)를 암시적으로 호출합니다.user(str) — 로그인할 사용자 이름(기본'anonymous'). 주어지면 생성자가login(host, passwd, acct)을 암시적으로 호출합니다.passwd(str) — 로그인 시 사용할 비밀번호. 주어지지 않고 빈 문자열이나"-"이면 비밀번호가 자동 생성됩니다.acct(str) —ACCTFTP 명령에 사용할 계정 정보. 소수의 시스템만 구현합니다.timeout(float | None) —connect()같은 차단 연산의 타임아웃(초 단위). 기본은 전역 기본 타임아웃 설정.source_address(tuple | None) — 소켓이 연결 전에 소스 주소로 바인딩할(host, port)2-튜플.encoding(str) — 디렉터리와 파일 이름의 인코딩(기본'utf-8').
FTP 클래스는 with 문을 지원합니다:
>>> from ftplib import FTP
>>> with FTP("ftp1.at.proftpd.org") as ftp:
... ftp.login()
... ftp.dir()
...
FTP 메서드
FTP 객체는 다양한 FTP 작업을 위한 메서드를 제공합니다:
- 연결:
connect(host, port=21, timeout=None, source_address=None) - 로그인:
login(user='anonymous', passwd='', acct='') - 디렉터리 전환:
cwd(pathname),pwd() - 디렉터리 내용:
dir(),nlst(),retrlines(cmd, callback=None) - 파일 다운로드:
retrbinary(cmd, callback, blocksize=8192, rest=None),retrlines() - 파일 업로드:
storbinary(cmd, fp, blocksize=8192),storlines(cmd, fp) - 파일 크기/시간:
size(filename),sendcmd(cmd),voidcmd(cmd) - 종료:
quit(),close()
retrbinary('RETR README', fp.write)처럼 콜백 패턴을 사용해 바이너리 파일을 로컬 파일에 직접 쓸 수 있습니다. FTP는 프로토콜 명령을 직접 보내는 sendcmd(), voidcmd(), retrlines(), transfercmd() 등 저수준 명령도 지원합니다.