From: gony at my-dejanews.com (gony at my-dejanews.com) Date: Wed, 28 Apr 1999 03:14:27 GMT Subject: HELP - FTP seesions using python???????? References: <7g328l$hga$1@nnrp1.dejanews.com> Message-ID: <7g5ueh$3pt$1@nnrp1.dejanews.com> Content-Length: 2532 X-UID: 337 thanks for the samples I'll work my way through them and figure out what they do and how they do it another small question in perl the #!/usr/local/bin/perl is not needed when run on a windows machine, does it matter for Python on a windows machine whether this line is present or not? In article , aahz at netcom.com (Aahz Maruch) wrote: > In article <7g328l$hga$1 at nnrp1.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! > -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own