103 lines
2.8 KiB
Plaintext
103 lines
2.8 KiB
Plaintext
|
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
|
||
|
|
||
|
|
||
|
|
||
|
|