1

我偶然发现了一些不是问题但相当令人费解的东西。我正在复制一个 xml 文件myxml.xmlmyxml_copy.xml并且输出文件的文件大小更大。我不明白为什么会这样。这与文件编码有什么关系吗?

无论如何,我正在使用的代码(虽然它相当微不足道):

from xml.dom.minidom import parseString
import sys

def parseXml():
    data = open(in_filename,'r').read()
    return data


try:
    in_filename = sys.argv[1]
    out_filename = sys.argv[2]

    out_file = open(out_filename,'w')
    out_file.write(parseXml())
    out_file.close()
except Exception,e:
    print "usage: python copy.py <in_file> <out_file>"
    print "Error",e

注意:我不是在寻找复制文件的方法。稍后我将修改原始 xml 文件(剪切和粘贴它的不同部分)。

4

1 回答 1

7

我认为问题在于您打开文件的模式必须是rb,而不仅仅是rwb而不是w. (意味着 - 使用二进制模式)

当它是rb- 字符串 like\r\n将保持这种方式,但当模式是r- 它们将变为\n.

简而言之 - 只需更改线路:

data = open(in_filename,'r').read()
out_file = open(out_filename,'w')

data = open(in_filename,'rb').read()
out_file = open(out_filename,'wb')

那有帮助吗?

于 2012-08-20T12:05:43.877 回答