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.
The ftplib module included in Python allows you to use Python scripts to quickly attach to an FTP server, locate files, and then download them to be processed locally. To open a connection to the FTP server, create an FTP server object using the ftplib. FTP([host [, user [, passwd]]]) method.
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.
To retrieve it, you can use urllib.retrieve
:
import urllib urllib.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.
ftplib now supports context managers so I guess it can be made even easier
from ftplib import FTP from pathlib import Path file_path = Path('kitten.jpg') with FTP('server.address.com', 'USER', 'PWD') as ftp, open(file_path, 'rb') as file: ftp.storbinary(f'STOR {file_path.name}', file)
No need to close the file or the session
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With