ftplib and retrbinary or retrlines (losing newline characters in my log files)

aus stuff austuff at gmail.com
Thu Jan 25 07:05:49 CET 2007


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

ftp.retrlines('RETR ' + fl, fileObj.write)"

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

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

Can anyone steer me in the right direction so my 'recieved log' files arent
all jumbled into one line?

(full code below)
any help appreciated :)
(excuse my newbie code copying )

Special thanks to the person/s whom originally made this code (found on
google)


<<<<<<<<<code starts


import string
import os
from sets import Set
from ftplib import FTP
import time

def
copyFTPFiles(serverName,userName,passWord,remotePath,localPath,deleteRemoteFiles=False,onlyDiff=False):
    """Connect to an FTP server and bring down files to a local directory"""

    try:
        ftp = FTP(serverName)
    except:
        print "Couldn't find server"
        #print >>myLogger, "Couldn't find server"
    ftp.login(userName,passWord <ftp://ftp.login(username,password/>)
    ftp.cwd(remotePath <ftp://ftp.cwd(remotepath/>)

    try:

        #print >>myLogger, "Connecting...",
        print "Connecting..."
        if onlyDiff:
            lFileSet = Set(os.listdir(localPath))
            rFileSet = Set(ftp.nlst())
            transferList = list(rFileSet - lFileSet)
            #print >>myLogger,  "Missing: " + str(len(transferList)) + ' >>>
',
            print "Missing: " + str(len(transferList)),
        else:
            transferList = ftp.nlst()
        delMsg = ""
        filesMoved = 0
        for fl in transferList:
            ttt = ''
            ttt = str(fl)
            if string.find(ttt, '.') > 0 :
                print '\nCopying >>> ' + ttt

                # create a full local filepath
                localFile = localPath + fl
                grabFile = True
                if grabFile:
                    #open a the local file
                    fileObj = open(localFile, 'wb')
                    # Download the file a chunk at a time using RETR
                    #ftp.retrbinary('RETR ' + fl, fileObj.write)
                    ftp.retrlines('RETR <ftp://ftp.retrlines('retr/> ' + fl,
fileObj.write)


                    # Close the file
                    fileObj.close()
                    filesMoved += 1

                # Delete the remote file if requested

                if deleteRemoteFiles:
                    ftp.delete(fl)
                    delMsg = " and Deleted"
                    #print >>myLogger,  " and Deleted"

        #print >>myLogger,  "Files Moved" + delMsg + ": " + str(filesMoved)
+ ' >>> ' + " On " + timeStamp()
        print "\nFiles Copied " + delMsg + ": " + str(filesMoved)
    except:
        #print >>myLogger,  "Connection Error - " + timeStamp()
        print "Connection Error - "
    ftp.close() # Close FTP connection
    ftp = None

copyFTPFiles("server","uname","pass","remoteDir","localDir")



>>>>>>>code end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070125/1f3826f6/attachment.html>


More information about the Python-list mailing list