<py****@sarcastic-horse.com> wrote in message
news:ma**********************************@python.o rg...
Hi:
I want to write a procedure to automatically upload some files for me, but
I'm getting stuck. Before I write my own gruesome put() function, I
wanted to check if there is an easier way.
Here's what I can do so far:import ftplib
conn = ftplib.FTP('ftp.example.com')
conn.login(user='userid', passwd='passwd')
conn.cwd('/var/www/html/incoming')
What do I do to send files?
I have three files I want to upload, but I'm not sure what to do. I hoped
to find a ftplib.put() method, but it looks like ftplib is a low-level
interface.
All help is welcome.
The methods your searching for are storlines (for ascii) or storbinary (for
non ascii).
You can simplyfy the process slightly with your own wrapper to those 2
methods to guess the file mode and call the correct method with the STOR
command created for you. An example is below.
def upload(conn, fname):
(head, tail) = os.path.split(fname)
command = "STOR " + tail
fd = open(fname, 'rb')
temp = fd.read(2048)
fd.seek(0, 0)
if temp.find('\0') != -1:
conn.storbinary(command, fd)
else:
conn.storlines(command, fd)
fd.close()
Anthony McDonald