2013-06-20 17 views
13

Chciałbym podać port z klientem ftplib Pythona (zamiast domyślnego portu 21).python ftplib podać port

Oto kod:

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

Czy istnieje prosty sposób określić alternatywną portu?

+2

Jeśli zrobisz pomoc (FTP), zobaczysz, że metoda ftp.connect() przyjmuje opcjonalne argumenty portu i hosta. – ditkin

Odpowiedz

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

Znaleziono odpowiedź. Instancję obiektu FTP, a następnie uruchomić połączyć na nim tak:

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

Tak można użyć connect

from ftplib import FTP 

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

Po wyszukaniu wiele rozwiązań, kombinacja docs.python.org i komenda connect rozwiązać mój problem.

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'] 

Jeśli używasz FTP SFTP zamiast po prostu użyć ftplib.FTP zamiast.