Set timeout for FTP connection in Python with ftplib

14,631

Try:

ftp = FTP('172.16.52.87', timeout=100)
ftp.login('user', 'pass)

or even

ftp = FTP('172.16.52.87', 'user', 'pass', timeout=100)

References:

Share:
14,631
David Comino
Author by

David Comino

Updated on June 04, 2022

Comments

  • David Comino
    David Comino almost 2 years

    I am triying to set up the timeout of a FTP connection usign:

    class ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]])

    Return a new instance of the FTP class. When host is given, the method call connect(host) is made. When user is given, additionally the method call login(user, passwd, acct) is made (where passwd and acct default to the empty string when not given). The optional timeout parameter specifies a timeout in seconds for blocking operations like the connection attempt (if is not specified, the global default timeout setting will be used).

    The problem is that my code to create the connection is as follows:

    from ftplib import FTP
    ftp = FTP('172.16.52.87')
    ftp.login('username', 'password')
    

    I found some problems if I use:

    ftp = FTP('172.16.52.87', 'username', 'password')
    

    Then my question is, how can I set up th timeout ?

    I have tried let some parameters empty but it does not work:

    ftp = FTP('172.16.52.87', '', '', '', '100')
    

    And login function has only 3 parameters login(user, passwd, acct)

    Some idea?

    Regards