Python ftplib - 指定端口

30

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

以下是代码:

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

有没有一种简单的方法来指定备用端口?

4个回答

26
>>> from ftplib import FTP
>>> HOST = "localhost"
>>> PORT = 12345 # Set your desired port number
>>> ftp = FTP()
>>> ftp.connect(HOST, PORT)

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代替即可。

8

是的,您可以使用connect方法。

from ftplib import FTP

my_ftp = FTP()
my_ftp.connect('localhost', 80) # 80 is the port for example

6

找到答案了。实例化FTP对象,然后像这样运行connect:

from ftplib import FTP
ftp = FTP()
ftp.connect('localhost', 2121)

1
8年过去了,但Doco仍然没有反映这种用法。 - mckenzm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接