§ !A?hç‹ ã óÚ — d Z ddlZddlZddlmZ g d¢ZdZdZdZ G d„ d e¦ « Z G d „ de ¦ « Z G d„ d e ¦ « Z G d„ de ¦ « Z G d„ de ¦ « Z e eefZdZdZ G d„ d¦ « Z ddlZej Z G d„ de¦ « Ze d¦ « e eeej fZn # e$ r dZY nw xY wdad„ Zdad„ Zd„ Zd„ Z d„ Z!d"d„Z"d „ Z#e$d!k r e#¦ « dS dS )#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)ÚFTPÚerror_replyÚ error_tempÚ error_permÚerror_protoÚ all_errorsé é é c ó — e Zd ZdS )ÚErrorN©Ú__name__Ú __module__Ú__qualname__© ó ú3/opt/alt/python-internal/lib64/python3.11/ftplib.pyr r 9 ó € € € € € € € r r c ó — e Zd ZdS )r Nr r r r r r : r r r c ó — e Zd ZdS )r Nr r r r r r ; r r r c ó — e Zd ZdS )r Nr r r r r r <