At Thursday 25/1/2007 03:05, aus stuff wrote:

Hi am successfully downloading my text files and writing them to local files with either

<ftp://ftp.retrlines('RETR>ftp.retrlines('RETR ' + fl, fileObj.write)"

<ftp://ftp.retrbinary('retr/>ftp.retrbinary('RETR ' + fl, fileObj.write)

However all my recieved (log) files have lost thier newline characters?

Both methods are different. From the docs for retrlines: "Retrieve a file or directory listing in ASCII transfer mode (...) The callback function is called for each line, with the trailing CRLF stripped.". The callback should be responsible of writting the missing '\n' then (fileObj should have been opened in text mode):

<ftp://ftp.retrlines('RETR>ftp.retrlines('RETR ' + fl, lambda line: fileObj.write('%s\n' % line))

Using retrbinary() you get the file in pieces, thay you should write in binary mode (just as the original code). The resulting file should be identical to the original file on the server. Line endings may be different on both platforms (some editors may allow to convert between \n, \r\n, \r...). That's why for a log file the ASCII transfer mode is better.


--
Gabriel Genellina
Softlab SRL

        

        
                
__________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to