get todays files

Andrew Doades andrew at doadesweb.co.uk
Thu Dec 11 14:03:57 EST 2008



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
>
>
>
>



More information about the Python-list mailing list