在 Python 中打开文本文件有两种方法:
f = open(filename)
And
import codecs
f = codecs.open(filename, encoding="utf-8")
When is codecs.open
优于open
?
从 Python 2.6 开始,一个好的做法是使用io.open()
,这也需要一个encoding
争论,就像现在过时的codecs.open()
。在Python 3中,io.open
是一个别名open()
内置。所以io.open()
适用于 Python 2.6 和所有更高版本,包括 Python 3.4。请参阅文档:http://docs.python.org/3.4/library/io.html http://docs.python.org/3.4/library/io.html
现在,对于最初的问题:阅读时text(包括“纯文本”、HTML、XML 和 JSON)在 Python 2 中你应该always use io.open()
使用显式编码,或者open()
在 Python 3 中使用显式编码。这样做意味着您可以正确解码 Unicode,或者立即得到错误,从而更容易调试。
纯 ASCII“纯文本”是遥远过去的神话。正确的英文文本使用弯引号、破折号、项目符号、€(欧元符号),甚至分音符 (¡)。别天真了! (我们不要忘记 Façade 设计模式!)
因为纯 ASCII 不是一个真正的选择,open()
没有显式编码的是only读起来很有用binary files.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)