Set timeout for FTP connection in Python with ftplib
Asked Answered
Z

1

9

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

Zucker answered 31/3, 2015 at 17:20 Comment(1)
beware, FTP() may take longer than timeout secondsElapse
W
22

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:

Winburn answered 31/3, 2015 at 17:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.