[Tutor] FTPlib Module

Danny Yoo dyoo@hkn.eecs.berkeley.edu
Mon, 3 Dec 2001 02:00:37 -0800 (PST)

On Sun, 2 Dec 2001, Cow wrote:

> I am currently learning to use the ftplib module, and i am getting most of it but i am running into a problem when i try to send a file.  Here is my code:
> from ftplib import FTP
> cow= FTP("") #Pretend that that address is the address of a FTP
> cow.login()
> cow.cwd("/")
> cow.set_pasv(0)
> cow.transfercmd("STOR test1.txt")
> cow.close()
> when i run the code, it sends the file to the sever, but there is nothing in the file (it is blank).  i am learning from this explanation:
> transfercmd(cmd[, rest])
> Initiate a transfer over the data connection. If the transfer is active, send a "EPRT" or "PORT" command and the transfer command specified by cmd, and accept the connection. If the server is passive, send a "EPSV" or "PASV" command, connect to it, and start the transfer command. Either way, return the socket for the connection. 
> i get most of it, but when i actually use code, it only sends a blank file.  can someone please clear up how i can get my code to send the file with its data in it?

I took a closer look at:


You might want to use storbinary() or storlines() instead of
transfercmd(); I think that transfercmd() is meant for something
else.  See if:

cow.storlines("STOR test1.txt", open("test1.txt"))

works better for you.