我有一个来自Windows提供商的700MB XML文件.
正如人们所预料的那样,行结尾是'\ r \n'(或者vi中的^ M).除了让供应商发送'\n'之外,处理这种情况的最有效方法是什么:-)
我对任何需要Python 2.6+的东西都很开放,但它需要在Snow Leopard和Ubuntu 9.10上运行,只需要很少的外部需求.我不介意一个小的性能损失,但我正在寻找标准的最佳方法来处理这个问题.
- - 编辑 - -
行结尾位于标记描述符的中间,否则它们不会是这样的问题.我知道这是一个糟糕的形式,他们不应该发送给我,但这就是我有文件和供应商大多是无能的.
为什么DOS行结束有问题?大多数事情都可以很好地处理它们,包括XML解析器.如果你真的想摆脱它们,请在universal line-endings模式下打开文件:
open(filename, 'rU')
Run Code Online (Sandbox Code Playgroud)
Python会将所有行结尾转换为UNIX行结尾.如果你真的不能使用它(我觉得有点令人惊讶),那么就没有办法让Python为你做这项工作.但是,你必须打开文件,所以你对#2的反对似乎有点奇怪.