\section{Standard Module \sectcode{ftplib}}
\label{module-ftplib}
\stmodindex{ftplib}

\renewcommand{\indexsubitem}{(in module ftplib)}

This module defines the class \code{FTP} and a few related items.  The
\code{FTP} class implements the client side of the FTP protocol.  You
can use this to write Python programs that perform a variety of
automated FTP jobs, such as mirroring other ftp servers.  It is also
used by the module \code{urllib} to handle URLs that use FTP.  For
more information on FTP (File Transfer Protocol), see Internet RFC
959.

Here's a sample session using the \code{ftplib} module:

\bcode\begin{verbatim}
>>> from ftplib import FTP
>>> ftp = FTP('ftp.cwi.nl')   # connect to host, default port
>>> ftp.login()               # user anonymous, passwd user@hostname
>>> ftp.retrlines('LIST')     # list directory contents
total 24418
drwxrwsr-x   5 ftp-usr  pdmaint     1536 Mar 20 09:48 .
dr-xr-srwt 105 ftp-usr  pdmaint     1536 Mar 21 14:32 ..
-rw-r--r--   1 ftp-usr  pdmaint     5305 Mar 20 09:48 INDEX
 .
 .
 .
>>> ftp.quit()
\end{verbatim}\ecode
%
The module defines the following items:

\begin{funcdesc}{FTP}{\optional{host\optional{\, user\, passwd\, acct}}}
Return a new instance of the \code{FTP} class.  When
\var{host} is given, the method call \code{connect(\var{host})} is
made.  When \var{user} is given, additionally the method call
\code{login(\var{user}, \var{passwd}, \var{acct})} is made (where
\var{passwd} and \var{acct} default to the empty string when not given).
\end{funcdesc}

\begin{datadesc}{all_errors}
The set of all exceptions (as a tuple) that methods of \code{FTP}
instances may raise as a result of problems with the FTP connection
(as opposed to programming errors made by the caller).  This set
includes the four exceptions listed below as well as
\code{socket.error} and \code{IOError}.
\end{datadesc}

\begin{excdesc}{error_reply}
Exception raised when an unexpected reply is received from the server.
\end{excdesc}

\begin{excdesc}{error_temp}
Exception raised when an error code in the range 400--499 is received.
\end{excdesc}

\begin{excdesc}{error_perm}
Exception raised when an error code in the range 500--599 is received.
\end{excdesc}

\begin{excdesc}{error_proto}
Exception raised when a reply is received from the server that does
not begin with a digit in the range 1--5.
\end{excdesc}

\subsection{FTP Objects}

FTP instances have the following methods:

\renewcommand{\indexsubitem}{(FTP object method)}

\begin{funcdesc}{set_debuglevel}{level}
Set the instance's debugging level.  This controls the amount of
debugging output printed.  The default, 0, produces no debugging
output.  A value of 1 produces a moderate amount of debugging output,
generally a single line per request.  A value of 2 or higher produces
the maximum amount of debugging output, logging each line sent and
received on the control connection.
\end{funcdesc}

\begin{funcdesc}{connect}{host\optional{\, port}}
Connect to the given host and port.  The default port number is 21, as
specified by the FTP protocol specification.  It is rarely needed to
specify a different port number.  This function should be called only
once for each instance; it should not be called at all if a host was
given when the instance was created.  All other methods can only be
used after a connection has been made.
\end{funcdesc}

\begin{funcdesc}{getwelcome}{}
Return the welcome message sent by the server in reply to the initial
connection.  (This message sometimes contains disclaimers or help
information that may be relevant to the user.)
\end{funcdesc}

\begin{funcdesc}{login}{\optional{user\optional{\, passwd\optional{\, acct}}}}
Log in as the given \var{user}.  The \var{passwd} and \var{acct}
parameters are optional and default to the empty string.  If no
\var{user} is specified, it defaults to \samp{anonymous}.  If
\var{user} is \code{anonymous}, the default \var{passwd} is
\samp{\var{realuser}@\var{host}} where \var{realuser} is the real user
name (glanced from the \samp{LOGNAME} or \samp{USER} environment
variable) and \var{host} is the hostname as returned by
\code{socket.gethostname()}.  This function should be called only
once for each instance, after a connection has been established; it
should not be called at all if a host and user were given when the
instance was created.  Most FTP commands are only allowed after the
client has logged in.
\end{funcdesc}

\begin{funcdesc}{abort}{}
Abort a file transfer that is in progress.  Using this does not always
work, but it's worth a try.
\end{funcdesc}

\begin{funcdesc}{sendcmd}{command}
Send a simple command string to the server and return the response
string.
\end{funcdesc}

\begin{funcdesc}{voidcmd}{command}
Send a simple command string to the server and handle the response.
Return nothing if a response code in the range 200--299 is received.
Raise an exception otherwise.
\end{funcdesc}

\begin{funcdesc}{retrbinary}{command\, callback\, maxblocksize}
Retrieve a file in binary transfer mode.  \var{command} should be an
appropriate \samp{RETR} command, i.e.\ \code{"RETR \var{filename}"}.
The \var{callback} function is called for each block of data received,
with a single string argument giving the data block.
The \var{maxblocksize} argument specifies the maximum block size
(which may not be the actual size of the data blocks passed to
\var{callback}).
\end{funcdesc}

\begin{funcdesc}{retrlines}{command\optional{\, callback}}
Retrieve a file or directory listing in \ASCII{} transfer mode.
\var{command} should be an appropriate \samp{RETR} command (see
\code{retrbinary()} or a \samp{LIST} command (usually just the string
\code{"LIST"}).  The \var{callback} function is called for each line,
with the trailing CRLF stripped.  The default \var{callback} prints
the line to \code{sys.stdout}.
\end{funcdesc}

\begin{funcdesc}{storbinary}{command\, file\, blocksize}
Store a file in binary transfer mode.  \var{command} should be an
appropriate \samp{STOR} command, i.e.\ \code{"STOR \var{filename}"}.
\var{file} is an open file object which is read until EOF using its
\code{read()} method in blocks of size \var{blocksize} to provide the
data to be stored.
\end{funcdesc}

\begin{funcdesc}{storlines}{command\, file}
Store a file in \ASCII{} transfer mode.  \var{command} should be an
appropriate \samp{STOR} command (see \code{storbinary()}).  Lines are
read until EOF from the open file object \var{file} using its
\code{readline()} method to privide the data to be stored.
\end{funcdesc}

\begin{funcdesc}{nlst}{argument\optional{\, \ldots}}
Return a list of files as returned by the \samp{NLST} command.  The
optional \var{argument} is a directory to list (default is the current
server directory).  Multiple arguments can be used to pass
non-standard options to the \samp{NLST} command.
\end{funcdesc}

\begin{funcdesc}{dir}{argument\optional{\, \ldots}}
Return a directory listing as returned by the \samp{LIST} command, as
a list of lines.  The optional \var{argument} is a directory to list
(default is the current server directory).  Multiple arguments can be
used to pass non-standard options to the \samp{LIST} command.  If the
last argument is a function, it is used as a \var{callback} function
as for \code{retrlines()}.
\end{funcdesc}

\begin{funcdesc}{rename}{fromname\, toname}
Rename file \var{fromname} on the server to \var{toname}.
\end{funcdesc}

\begin{funcdesc}{cwd}{pathname}
Set the current directory on the server.
\end{funcdesc}

\begin{funcdesc}{mkd}{pathname}
Create a new directory on the server.
\end{funcdesc}

\begin{funcdesc}{pwd}{}
Return the pathname of the current directory on the server.
\end{funcdesc}

\begin{funcdesc}{quit}{}
Send a \samp{QUIT} command to the server and close the connection.
This is the ``polite'' way to close a connection, but it may raise an
exception of the server reponds with an error to the \code{QUIT}
command.
\end{funcdesc}

\begin{funcdesc}{close}{}
Close the connection unilaterally.  This should not be applied to an
already closed connection (e.g.\ after a successful call to
\code{quit()}.
\end{funcdesc}
