28

我想用 Python 的 ftplib 客户端指定端口(而不是默认端口 21)。

这是代码:

from ftplib import FTP
ftp = FTP('localhost') # connect to host, default port

有没有一种简单的方法来指定一个替代端口?

4

4 回答 4

25
>>> from ftplib import FTP
>>> HOST = "localhost"
>>> PORT = 12345 # Set your desired port number
>>> ftp = FTP()
>>> ftp.connect(HOST, PORT)
于 2013-06-20T02:19:13.193 回答
12

在搜索了许多解决方案后,docs.python.orgconnect命令的组合解决了我的问题。

from ftplib import FTP_TLS

host = 'host'
port = 12345
usr = 'user'
pwd = 'password'
ftps = FTP_TLS()
ftps.connect(host, port)
# Output: '220 Server ready for new user.'
ftps.login(usr, pwd)
# Output: '230 User usr logged in.'
ftps.prot_p()
# Output: '200 PROT command successful.'
ftp.nlst()
# Output: ['mysubdirectory', 'mydoc']

如果您使用的是普通 FTP 而不是 FTPS,请ftplib.FTP改用。

于 2017-09-15T18:06:34.987 回答
8

是的,您可以使用连接

from ftplib import FTP

my_ftp = FTP()
my_ftp.connect('localhost', 80) # 80 is the port for example
于 2013-06-20T02:19:38.690 回答
6

找到了答案。实例化 FTP 对象,然后在其上运行 connect,如下所示:

from ftplib import FTP
ftp = FTP()
ftp.connect('localhost', 2121)
于 2013-06-20T02:19:24.800 回答