web-dev-qa-db-ja.com

Python ftplib-ポートを指定

(デフォルトのポート21ではなく)Pythonのftplibクライアントでポートを指定したいと思います。

これがコードです:

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

代替ポートを指定する簡単な方法はありますか?

22
user284244
>>> from ftplib import FTP
>>> Host = "localhost"
>>> PORT = 12345 # Set your desired port number
>>> ftp = FTP()
>>> ftp.connect(Host, PORT)
19
Gizmo

はい、使用できます connect

from ftplib import FTP

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

多数のソリューションを検索した後、 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']

FTPSの代わりにプレーンFTPを使用している場合は、ftplib.FTP代わりに。

6
datalifenyc

答えが見つかりました。 FTPオブジェクトをインスタンス化し、次のようにその上で接続を実行します。

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