*j S r SSKrSSKrSSKJr / SQrSrSrSr " S S \5 r " S S\ 5 r " S S \ 5 r " S S\ 5 r " S S\ 5 r \ \\4rSrSr " S S5 r SSKr\R* r " S S\5 r\R1 S5 \ \\\R2 4rSqS rSqS rS rS r S r!S S jr"S r#\$S:X a \#" 5 gg! \ a Sr N4f = f)!aS 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 N)_GLOBAL_DEFAULT_TIMEOUT)FTPerror_reply error_temp error_permerror_proto all_errors c \ rS rSrSrg)Error9 N__name__ __module____qualname____firstlineno____static_attributes__r -/opt/alt/python313/lib64/python3.13/ftplib.pyr r 9 s r r c \ rS rSrSrg)r : r Nr r r r r r : $r r c \ rS rSrSrg)r ; r Nr r r r r r ; r r c \ rS rSrSrg)r <