StringIO和BytesIO
生活随笔
收集整理的這篇文章主要介紹了
StringIO和BytesIO
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
StringIO:from io import StringIO
內存中,開辟的一個文本模式的buffer,可以像文件對象一樣操作它
當close方法被調用的時候,這個buffer會被釋放getvalue() 獲取全部內容,跟文件指針沒有關系例子:
from io import StringIOsio = StringIO()
print(sio.readable(), sio.writable(), sio.seekable())#可讀可寫可seek
>>>True True True
sio.write('test\npython')
>>>11
sio.seek(0)
>>>0
print(sio.readline())
>>>test
print(sio.getvalue())#無視指針輸出全部內容
>>>testpython
>>>
sio.close()StringIO 好處:磁盤的操作比內存操作要慢,內存足夠的情況下,一般的優化思路是少落地,減少磁盤IO的
過程,可以提高程序的運行效率BytesIO:io模塊中的類:from io import StringIO內存中開辟一個二進制模式的buffer,可以像文件對象一樣操作它當close方法被調用的時候,這個buffer會被釋放例子:
from io import BytesIObio = BytesIO()
print(bio.readable(), bio.writable(), bio.seekable())
>>> True True True
bio.write(b"test\npython")
>>> 11
bio.seek(0)
>>>0
print(bio.readline())
>>> b'test\n'
print(bio.getvalue())
>>>b'test\npython'
bio.close()file-like對象:類文件對象,可以像文件對象一樣操作socket對象,輸入輸出對象(stdin、stdout)都是類文件對象from sys import stdoutf = stdout
print(type(f))
>>><class '_io.TextIOWrapper'>
f.write('test.com')
>>>test.com
轉載于:https://www.cnblogs.com/hkcs/p/7750242.html
總結
以上是生活随笔為你收集整理的StringIO和BytesIO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用doctest单元测试方式培训讲解:
- 下一篇: 虚拟机中使用centos-----2