[Tutor] Passing command line argument in function

Kent Johnson kent37 at tds.net
Tue Jun 14 12:10:11 CEST 2005


Gary Taylor wrote:
> I'm trying to pass the name of a file as the first argument
> to the ftp.storbinary function(?) below.  The only thing I
> can get to work is the real file name hard coded as the
> argument.  I've tried parenthesis, single quotes, double
> quotes, and many combinations of the previous. I've tried
> passing sys.argv[1] directly as well, although with fewer
> experiments.
>  
> I invoke this as below and the output is what I would
> expect, but the file name on the ftp server is never
> correct.
> 
> 
> What is the correct way to do this? 
> 
> 
> $ ./garyftp.py align.ps
> align.ps
> 
> 
> 
> ---
> Python 2.3.4 on Linux.
> 
> 
> ---
> #!/usr/bin/python
> import sys
> from ftplib import FTP
> 
> file_to_transfer = sys.argv[1]
> 
> ftp = FTP()
> ftp.connect("myserver")
> ftp.login("myusername", "mypasswd")
> 
> 
> ftp.storbinary(stor file_to_transfer, open(file_to_transfer,"r"))

You need to create the command as a string:
ftp.storbinary("stor " + file_to_transfer, open(file_to_transfer,"r"))

Kent
> 
> print file_to_transfer
> ftp.quit()
> --
> 
> Thanks,
> Gary
> 
> squeaky at sdf.lonestar.org
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 



More information about the Tutor mailing list