# Ftplib Module ## FTP CLASSES ```py ftplib.FTP(host="", user="", password="", acct="") # if HOST => connect(host) # if USER => login(user, password, acct) ftplib.FTP_TLS(host="", user="", password="", acct="") ``` ## EXCEPTIONS ```py ftplib.error_reply # unexpected error from server ftplib.error_temp # temporary error (response codes 400-499) ftplib.error_perm # permanent error (response codes 500-599) ftplib.error_proto # error not in ftp specs ftplib.all_errors # tuple of all exceptions ``` ## FTP OBJECTS ```py # method on text files: -lines # method on binary files: -binary # CONNECTION FTP.connect(host="", port=0) # used once per instance # DON'T CALL if host was supplied at instance creation FTP.getwelcome() # return welcome message FTP.login(user='anonymous', password='', acct='') # called once per instance after connection is established # DEFAULT PASSWORD: anonymous@ # DON'T CALL if host was supplied at instance creation FTP.sendcmd(cmd) # send command string and return response FTP.voidcmd(cmd) # send command string and return nothing if successful # FILE TRANSFER FTP.abort() # abort in progress file transfer (can fail) FTTP.transfercmd(cmd, rest=None) # returns socket for connection # CMD active mode: send EPRT or PORT command and CMD and accept connection # CMD passive mode: send EPSV or PASV and start transfer command FTP.retrbinary(cmd, callback, blocksize=8192, rest=None) # retrieve file in binary mode # CMD: appropriate RETR command ('RETR filename') # CALLBACK: func called on every block of data received FTP.rertlines(cmd, callback=None) # retrieve file or dir list in ASCII transfer mode # CMD: appropriate RETR, LSIT (list and info of files), NLST (list of file names) # DEFAULT CALLBACK: sys.stdout FTP.set_pasv(value) # set passive mode if value is true, otherwise disable it # passive mode on by default FTP.storbinary(cmd, fp, blocksize=8192, callback=None, rest=None) # store file in binary mode # CMD: appropriate STOR command ('STOR filename') # FP: {file object in binary mode} read until EOF in blocks of blocksize # CALLBACK: func called on each block after sending FTP.storlines(cmd, fp, callback=None) # store file in ASCII transfer mode # CMD: appropriate STOR command ('STOR filename') # FP: {file object} read until EOF # CALLBACK: func called on each block after sending ```