除了明显的(一个是类型,另一个类)?什么应该是首选?用例中的任何显着差异,也许?
S.L*_*ott 30
http://docs.python.org/library/io.html#io.StringIO
http://docs.python.org/library/stringio.html
我明白了
用于unicode文本的内存中流.它继承了TextIOWrapper.
该模块实现了一个类文件类StringIO,它读写字符串缓冲区(也称为内存文件).
io.StringIO是一个班级.它处理Unicode.它反映了首选的Python 3库结构.
StringIO.StringIO是一个班级.它处理字符串.它反映了传统的Python 2库结构.
什么应该是首选?
始终向新的图书馆组织迈进.本io.open应该用来代替内置的Unicode的不知道open.
向前.向前走.
关于python 2.7和3:
io.BytesIO是类似于文件的内存中对象,它不会对换行符做任何更改,并且类似于open(filename, "wb")。它处理bytes()字符串,在py2.7中是的别名str。
io.StringIO是类似于文件的内存中对象,它确实对换行符进行了更改,与相似open(filename, "w")。它处理unicode()字符串,在py3.x中是的别名str。
py2.7的old StringIO.StringIO是一个类似于文件的内存对象,它不会更改换行符,与相似open(filename, "w")。它以大多数过时的python 2字符串方法处理这两种方法,unicode()并且bytes()以相同的方式处理:通过允许您混合它们而不会出错,但前提是您幸运。
因此,py2.7的旧StringIO.StringIO类实际上比io.StringIO更类似于io.BytesIO,因为它以bytes()/ str()的形式运行,并且不进行换行转换。
应该首选什么?
根据用例StringIO.StringIO,不要使用,而是使用io.BytesIO或io.StringIO。这与python 3向前兼容,并提交字节或unicode,而不是“两者都”。
| 归档时间: |
|
| 查看次数: |
11090 次 |
| 最近记录: |