"hawkmoon269" <[EMAIL PROTECTED]> wrote:

> It turns out that the retrlines method strips of EOL CRLF and \n.  My
> solution was to create a new method in ftplib that doesn't do this.
> I'm assuming that there is a better OOP solution to this, e.g. some
> kind of subclassing, but do not have the expertise as yet to implement
> that.

reading the documentation might help, somewhat:

          retrlines( command[, callback])


    Retrieve a file or directory listing in ASCII transfer mode. command should
    be an appropriate "RETR" command (see retrbinary()) or a "LIST" command
    (usually just the string 'LIST'). The callback function is called for each 
line,
    with the trailing CRLF stripped.

so if you want line endings, just use a callback that adds line endings:

    def mycallback(line):
        print line

    ftp.retrlines("RETR ...", mycallback)

or, perhaps:

    file = open("output.txt", "w")

    def mycallback(line):
        # note: file is a global variable
        file.write(line)
        file.write("\n")

    ftp.retrlines(...)

(since the file is opened in text mode, the write method will automatically
convert "\n" to "\r\n" on windows).

</F> 



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to