HELP - FTP seesions using python????????

Aahz Maruch aahz at netcom.com
Mon Apr 26 21:50:51 EDT 1999


In article <7g328l$hga$1 at nnrp1.dejanews.com>,  <gony at my-dejanews.com> wrote:
>
>any links or tips etc on how to tackle automation of FTP sessions using python
>would be most appreciated.

Here's a sample; there aren't any comments (proof that Python can be
almost as obscure as Perl ;-), but it shouldn't be *that* hard to read:

#!/usr/local/bin/python

import sys, os, ftplib, string

def getpass(prompt = "Password: "):
    import termios, TERMIOS, sys
    fd = sys.stdin.fileno()
    old = termios.tcgetattr(fd) 
    new = termios.tcgetattr(fd)
    new[3] = new[3] & ~TERMIOS.ECHO          # lflags
    try:
        termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
        passwd = raw_input(prompt)
    finally:
        termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
	print
    return passwd



if len ( sys.argv ) < 4 :
	raise 'Must have three arguments: host[:path], user[:passwd], and file'

HostPath = sys.argv[1]
pos = string.find ( HostPath, ':' )
if pos > 0 :
	host = HostPath[0:pos]
	if ( pos + 1 ) == len ( HostPath ) :
		path = ""
	else:
		path = HostPath[(pos+1):]
else :
	host = HostPath
	path = ""


UserPass = sys.argv[2]
pos = string.find ( UserPass, ':' )
if pos > 0 :
	user = UserPass[0:pos]
	if ( pos + 1 ) == len ( UserPass ) :
		passwd = ""
	else:
		passwd = UserPass[(pos+1):]
else :
	user = UserPass
	passwd = getpass()


filename = sys.argv[3]
pos = string.rfind ( filename, '/' )
if pos > 0 :
	basename = filename[pos:]
else :
	basename = filename


fd = open ( filename )
ftp = ftplib.FTP ( host, user, passwd )
ftp.cwd ( path )
ftp.storbinary ( 'STOR %s' % basename, fd, 1024 * 16 )
ftp.close()

fd.close()
-- 
                      --- Aahz (@netcom.com)

Hugs and backrubs -- I break Rule 6       <*>      http://www.rahul.net/aahz/
Androgynous poly kinky vanilla queer het

Hi!  I'm a beta for SigVirus 2000!  Copy me into your .sigfile!




More information about the Python-list mailing list