Lc @ s d Z d d k Z d d k Z y5 d d k Z e Z [ d d k l Z e e _ [ Wn e j o d d k Z n Xd d k l Z d d g Z d Z d Z d Z d e f d YZ d e f d YZ d e f d YZ d e f d YZ d e f d YZ e e e f Z d Z d f d YZ e a d Z e a d Z d Z d Z d Z d d d Z d f d YZ d Z! e" d j o e! n d S(! sS An FTP client class and some helper functions. Based on RFC 959: File Transfer Protocol (FTP), by J. Postel and J. Reynolds Example: >>> from ftplib import FTP >>> ftp = FTP('ftp.python.org') # connect to host, default port >>> ftp.login() # default, i.e.: user anonymous, passwd anonymous@ '230 Guest login ok, access restrictions apply.' >>> ftp.retrlines('LIST') # list directory contents total 9 drwxr-xr-x 8 root wheel 1024 Jan 3 1994 . drwxr-xr-x 8 root wheel 1024 Jan 3 1994 .. drwxr-xr-x 2 root wheel 1024 Jan 3 1994 bin drwxr-xr-x 2 root wheel 1024 Jan 3 1994 etc d-wxrwxr-x 2 ftp wheel 1024 Sep 5 13:43 incoming drwxr-xr-x 2 root wheel 1024 Nov 17 1993 lib drwxr-xr-x 6 1094 wheel 1024 Sep 13 19:07 pub drwxr-xr-x 3 root wheel 1024 Jan 3 1994 usr -rw-r--r-- 1 root root 312 Aug 1 1994 welcome.msg '226 Transfer complete.' >>> ftp.quit() '221 Goodbye.' >>> A nice test that reveals some of the network dialogue would be: python ftplib.py -d localhost -l -p -l iN( t getfqdn( t _GLOBAL_DEFAULT_TIMEOUTt FTPt Netrci i i t Errorc B s e Z RS( ( t __name__t __module__( ( ( s /usr/lib64/python2.6/ftplib.pyR > s t error_replyc B s e Z RS( ( R R ( ( ( s /usr/lib64/python2.6/ftplib.pyR ? s t error_tempc B s e Z RS( ( R R ( ( ( s /usr/lib64/python2.6/ftplib.pyR @ s t error_permc B s e Z RS( ( R R ( ( ( s /usr/lib64/python2.6/ftplib.pyR A s t error_protoc B s e Z RS( ( R R ( ( ( s /usr/lib64/python2.6/ftplib.pyR B s s c B s e Z d Z d Z d Z e Z e Z d, Z d, Z d, Z d Z d d d d e d Z d d d d Z d Z d Z e Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z! d Z" d, d Z# d, d Z$ d d d d Z% d d, d Z&