我有一个Python代码库,为Python 3构建,它使用python3样式的open()和编码参数:
https://github.com/miohtama/vvv/blob/master/vvv/textlineplugin.py#L47
with open(fname, "rt", encoding="utf-8") as f:
现在我想将这段代码反向移植到Python2.x,这样我就有了一个与Python2和Python3一起工作的代码库。
建议如何解决open()
差异和缺少编码参数?
我可以有一个Python 3open()
风格的文件处理程序,它可以流式处理testrings,所以它的行为就像Python 2open()
?
一。要在Python 2中获取编码参数:
如果您只需要支持Python 2.6和2.7,那么可以使用^{} ,而不是
open
。io
是Python 3的新io子系统,它也存在于Python 2,6ans2.7中。请注意,在Python2.6(以及3.0)中,它是纯用Python实现的,而且速度非常慢,因此如果您需要读取文件的速度,它不是一个好的选择。如果需要速度,并且需要支持Python2.6或更早版本,则可以使用^{} 。它还有一个编码参数,与
io.open
非常相似,只是它处理行尾的方式不同。2。要获取Python 3
open()
样式的文件处理程序,该文件处理程序将按testrings进行流处理:注意“b”,意思是“二进制”。
有一种方法:
我想
应该可以。
相关问题 更多 >
编程相关推荐