Search code examples
pythonftpupload

Python Script Uploading files via FTP


I would like to make a script to upload a file to FTP.

How would the login system work? I'm looking for something like this:

ftp.login=(mylogin)
ftp.pass=(mypass)

And any other sign in credentials.


Solution

  • Use ftplib, you can write it like this:

    import ftplib
    session = ftplib.FTP('server.address.com','USERNAME','PASSWORD')
    file = open('kitten.jpg','rb')                  # file to send
    session.storbinary('STOR kitten.jpg', file)     # send the file
    file.close()                                    # close file and FTP
    session.quit()
    

    Use ftplib.FTP_TLS instead if you FTP host requires TLS.


    Python 2

    To retrieve it, you can use urllib.retrieve:

    import urllib 
    
    urllib.urlretrieve('ftp://server/path/to/file', 'file')
    

    Python 3

    import urllib.request
    
    urllib.request.urlretrieve('ftp://server/path/to/file', 'file')
    

    EDIT:

    To find out the current directory, use FTP.pwd():

    FTP.pwd(): Return the pathname of the current directory on the server.

    To change the directory, use FTP.cwd(pathname):

    FTP.cwd(pathname): Set the current directory on the server.