简体   繁体   中英

Python Adds An Extra CR At The End Of The Received Lines

A Java application sends an XML to a Python application. They are both on the same machine. When I open the received file I can see extra lines (because of extra CRs). What could be the reason for this?

This is the receiver:

f = open('c:/python/python.xml', 'w')
while 1:
    print("xxx")        
    data = socket.recv(recv_frame)
    remain_byte = remain_byte - len(data)
    print(remain_byte)
    f.write(data)
    if (something):
        break

This is the sender:

    while ((bytesRead = file_inp.read(buffer)) > 0) {
        output_local.write(buffer, 0, bytesRead);
    }

This is the original file:

<root><CR><LF>
    <SONG><CR><LF>
        <ARTIST>Coldplay</ARTIST><CR><LF>
    </SONG><CR><LF>
</root><CR><LF>

This is the received:

<root><CR>
<CR><LF>
    <SONG><CR>
<CR><LF>
        <ARTIST>Coldplay</ARTIST><CR>
<CR><LF>
    </SONG><CR>
<CR><LF>
</root><CR>
<CR><LF>

Change filemode from 'w' to 'wb' , otherwise Python converts any newlines ( '\\n' ) into the platform specific representation ( '\\r\\n' for Windows). Binary mode suppresses this conversion.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM