python文件复制给出更大的文件

标签 python python-2.7

我偶然发现了一些不是问题,但相当令人费解的事情。我正在将 xml 文件 myxml.xml 复制到 myxml_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 文件(剪切和粘贴它的不同部分)。

最佳答案

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

当它是 rb - 像 \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')

有帮助吗?

关于python文件复制给出更大的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037273/

相关文章:

Python:将同一键的多个实例转换为多行

python - 如何修复 Pylint "Wrong hanging indentation"和 PEP8 E121?

python - 如何使用 lxml 将命名空间包含到 xml 文件中?

python - Linux OpenGL 代码失败,可​​在 Mac 和 Windows 上运行

python - Python 中的颜色函数

python - Cerberus 自定义规则和自定义验证器之间有什么区别?

python - 嵌套的 Pandas 数据框 - 如何按数据选择/分组?

python - 如何检查字符串是否具有相同的字符? Python

python - PySide 将信号从 QThread 传递到另一个 QThread 中的插槽

python - 如何在 mac 上从 64 位 python 2.7 切换到 32 位 python 2.7