用Python 2中的通用换行符读取UTF-8文件
我以前使用用Python 2中的通用换行符读取UTF-8文件,python,encoding,utf-8,line-breaks,Python,Encoding,Utf 8,Line Breaks,我以前使用os.open()读取和写入文本文件。现在我改为使用codecs.open(),因为我想要UTF-8支持。这很好,但此方法在Windows中返回了不同的结果,因为源文件使用了\r\n换行符。在我看来,codecs.open()通用换行符不可用 我对这个问题的理解是,os.open()和codecs.open()具有相互排斥的特性os.open()具有良好的功能(在读取的情况下,这意味着它可以替代任何形式的换行符,而codecs.open()提供UTF-8支持 我的目标是将UTF-8编码
os.open()
读取和写入文本文件。现在我改为使用codecs.open()
,因为我想要UTF-8支持。这很好,但此方法在Windows中返回了不同的结果,因为源文件使用了\r\n
换行符。在我看来,codecs.open()
通用换行符不可用
我对这个问题的理解是,os.open()
和codecs.open()
具有相互排斥的特性<文本模式下的code>os.open()具有良好的功能(在读取的情况下,这意味着它可以替代任何形式的换行符,而codecs.open()
提供UTF-8支持
我的目标是将UTF-8编码的文件读入(最好是写入)带有通用换行符的unicode字符串。这意味着,如果我读取两个具有不同换行符的文件,结果字符串应该是相同的。我只想使用与Python 2.6兼容的核心库来实现这一点。如何以最优雅的方式实现这一点?io.open()
是os.open()
和codecs.open()的交叉点
它提供了完整的通用换行符支持和透明字符串解码/编码的TextWrapper模式。我相信它与Python 3的open()
用法与编解码器相同。open()
:
文本模式和通用换行是默认选项。问题与此问题非常相似。
my_file = io.open("myfile.txt", "w", encoding="utf-8")