7

Java アプリケーションは XML を Python アプリケーションに送信します。それらは両方とも同じマシン上にあります。受信したファイルを開くと、余分な行が表示されます (余分な CR のため)。この理由は何でしょうか?

これはレシーバーです:

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

これは送信者です:

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

これは元のファイルです。

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

これは受け取ったものです:

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

1 に答える 1

7

filemode を から'w'に変更し'wb'ます。それ以外の場合、Python はすべての改行 ( '\n') をプラットフォーム固有の表現 ( '\r\n'Windows の場合) に変換します。バイナリ モードでは、この変換が抑制されます。

于 2012-04-11T17:55:32.313 に答える