Tim Chase wrote:
I know this will sound like I am being very cheeky, but is there a
way you can make this for where the ftp server is actually windows
server?
For Windows Server, I don't have a Windows FTP server to test with --
I've got the company Linux server, and the previous testing site I
used (I think I used ftp.mozilla.org) which also likely runs some
flavor of Linux. Neither supports the NLST from my testing.
curr_date = strftime("%d %B %Y", gmtime())
The first thing I noticed was that your strftime formating needs to
match the format of the date that comes back from the FTP site. In my
test, that was "YYYYMMDD". As such, your "%d %B %Y" would likely need
to be "%Y%m%d".
ftp.retrlines('NLST',makelist)
The servers I tried didn't support the NLST command so I can't exactly
follow along here. However assuming that it correctly populates the
list of files here
for ff in files:
correctly, that's immaterial to me.
ftp = FTP(ftp_server)
ftp.set_pasv(False)
resp = ftp.login(ftp_uname,ftp_pwd)
Just curious why you're logging into the server each pass through the
loop -- I'd just connect once at the beginning of the loop, pull the
files, and then disconnect at the end of the loop.
I support it would be somewhat better to download in a 'bulk' download
rather that a file at a time, this script was not written by me, I am
just the developer who has to make a new or modify the old one.
assert code == "213", "Unexpected result"
Does this assert fail at any point?
Nope, nothing shows up in my logs or on screen.
if stamp[:8] == today:
Given the above date-formatting, this should fail *every* time unless
your FTP server is returning the date in some format other than
"YYYYMMDDhhmmss"
This line appears to just get missed in the code, I think it might be
one of the problems when it downloads all the files.
It's hard to pinpoint actual problems as this block of code has been
modified, or doesn't run...there's some bogus indentation in your post:
log('Transferring: ' + ff[0])
# make parameters to wget the backup file
params = ' ftp://' + ftp_server + '/' + ff[0]
rcode = subprocess.call('c:/wget.exe ' + params)
log('Return code from wget = ' + str(rcode))
if (rcode == 0):
ff[1] = 1
else:
log('File ' + ff[0] + ' already exists locally, not
transferring')
because this "else" is hanging oddly. Additionally, the FTP object
has methods for downloading the content of a file, so I'd not bother
shelling out to wget as an additional dependency
I am running kubuntu 8.04 and have edited the code in kate, It seemed to
indent on every line, so I just 'pulled' it back a little.
.
-tkc
Thanks for you comments, I think I will try and start from scratch and
see what I get.
Andrew
--
http://mail.python.org/mailman/listinfo/python-list