You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 lines
2.8 KiB

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> <aahzFAtrsr.L3w@netcom.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 <aahzFAtrsr.L3w at netcom.com>,
aahz at netcom.com (Aahz Maruch) wrote:
> 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!
>
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own