Подтвердить что ты не робот

Python ftplib - указать порт

Я хотел бы указать порт с клиентом ftplib Python (вместо стандартного порта 21).

Вот код:

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

Есть ли простой способ указать альтернативный порт?

4b9b3361

Ответ 1

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

Ответ 2

Да, вы можете использовать connect

from ftplib import FTP

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

Ответ 3

Нашел ответ. Создайте экземпляр объекта FTP, а затем запустите его так:

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

Ответ 4

После поиска многочисленных решений комбинация docs.python.org и команды connect решили мою проблему.

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.