![](/img/trans.png)
[英]Processing a Django UploadedFile as UTF-8 with universal newlines
[英]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.