我以前曾经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模式。我认为它与Python 3的实现最相似open()
用法与codecs.open()
:
my_file = io.open("myfile.txt", "w", encoding="utf-8")
文本模式和通用换行符是默认选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句