繁体   English   中英

在Python 2中使用通用换行符读取UTF-8文件

[英]Reading UTF-8 file with universal newlines in Python 2

我之前使用os.open()来读写文本文件。 现在我改为使用codecs.open()因为我想要UTF-8支持。 这很好用,但是这种方法在Windows中返回了不同的结果,因为源文件使用了\\r\\n换行符。 在我看来,使用codecs.open()通用换行符不可用, 因为它使用二进制模式

我对这个问题的理解是os.open()codecs.open()都有各自相互排斥的特性。 文本模式下的os.open()具有通用换行模式的优点(在读取的情况下意味着它将任何形式的换行符替换为\\n ),而codecs.open()提供UTF-8支持。

我的目标是将UTF-8编码的文件读取(并优先写入)为具有通用换行符的unicode字符串。 这意味着如果我读取具有不同换行符的两个文件,则生成的字符串应该相同。 我想只使用兼容Python 2.6的核心库来实现这一点。 我该如何以最优雅的方式做到这一点?

io.open()os.open()codecs.open()的交集。

它提供完整的通用换行支持和TextWrapper模式,用于透明字符串解码/编码。 我相信它与open()的Python 3实现最相似

用法与codecs.open()相同:

my_file = io.open("myfile.txt", "w", encoding="utf-8")

文本模式和通用换行符是默认选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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