ftplib question: how to upload files?

Anthony McDonald tonym1972/at/club-internet/in/fr
Thu Sep 11 17:24:13 EDT 2003


<python at sarcastic-horse.com> wrote in message
news:mailman.1063305377.21943.python-list at python.org...
> 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






More information about the Python-list mailing list