Python之StringIO和BytesIO

StringIO

  • io模块中的类  from io import StringIO
  • 内存中,开辟一个文本模式的buffer,可以像文件对象一样操作它
  • 当close方法被调用的时候,这个buffer会被释放
StringIO操作

getvalue() 获取全部内容。根文件指针没有关系

>>> from io import StringIO
>>> # 内存中构建
>>> sio = StringIO()  # 像文件对象一样操作
>>> print(sio, sio.readable(), sio.writable(), sio.seekable())
<_io.StringIO object at 0x0000010B14ECE4C8> True True True
>>> sio.write("hello,world!")
12
>>> sio.seek(0)
0
>>> sio.readline()
‘hello,world!‘
>>> sio.getvalue()  # 无视指针,输出全部内容
‘hello,world!‘
>>> sio.close()

优点

一般来说,磁盘的操作比内存的操作要慢得多,内存足够的情况下,一般的优化思路是少落地,减少磁盘IO的过程,可以大大提高程序的运行效率

BytesIO

  • io模块中的类  from io import BytesIO
  • 内存中,开辟一个二进制模式的buffer,可以像文件对象一样操作它
  • 当close方法被调用的时候,这个buffer会被释放
BytesIO操作
>>> from io import BytesIO
>>> # 内存中构建
>>> bio = BytesIO()
>>> print(bio, bio.readable(), bio.writable(), bio.seekable())
<_io.BytesIO object at 0x0000010B14ED7EB8> True True True
>>> bio.write(b"hello,world!)
12
>>> bio.seek(0)
0
>>> bio.readline()
b‘hello,world!‘
>>> bio.getvalue()  # 无视指针,输出全部内容
b‘hello,world!‘
>>> bio.close()

file-like对象

类文件对象,可以像文件对象一样操作

socket对象、输入输出对象(stdin、stdout)都是类文件对象

>>> from sys import stdout
>>> f = stdout
>>> print(type(f))
<class ‘ipykernel.iostream.OutStream‘>
>>> f.write("hello,world!")
hello,world!

原文地址:https://www.cnblogs.com/juneman/p/9010962.html

时间: 2024-10-18 07:49:11

Python之StringIO和BytesIO的相关文章

python学习——StringIO和BytesIO

StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写. StringIO顾名思义就是在内存中读写str. 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可: >>> from io import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>> f.write(

python模块—StringIO and BytesIO

1.StringIO模块 在平时开发过程中,有些时候我们可能不需要写在文件中,我们可以直接通过StringIO模块直接写入到系统内存中,如果不用了,可以直接清除就可以了.StringIO主要是用来在内存中写入字符串的,及字符串的缓存. 1.1通过StringIO写入内存 例子 #from io import StringIO from io import BytesIO as StringIO output = StringIO() output.write("hello,world"

Python学习笔记__9.2章 StringIO 和 BytesIO

# 这是学习廖雪峰老师python教程的学习笔记 很多时候,数据读写不一定是文件,也可以在内存中读写. 1.StringIO StringIO顾名思义就是在内存中读写str. 1.1.写入StringIO 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可. >>> from io import StringIO   #  导入StringIO类 >>> f = StringIO()     # 创建一个实例,赋给f对象 >

Python学习笔记(二十四)StringIO和BytesIO

StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写. StringIO顾名思义就是在内存中读写str. 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可: >>> from io import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>> f.write(

加密&amp;json&amp;StringIO模块&amp;BytesIO模块

一.加密 加密 md5 rsa hashlib (适用于python2) 案例一:import hashlib# m = hashlib.md5()# src = "123456"# m.update(src)# print(m.hexdigest()) m3 = hashlib.md5("123456".encode("utf-8"))src = bytes("ling", encoding="utf-8"

Python22 文件读写、StringIO、BytesIO

文件读写.StringIO.BytesIO IO编程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776 - - - 文件读写:,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件:使用python内置的函数open() ,传入文件名,和标识符 代码: ``` # 读文件,read.txt 是

StringIO和BytesIO

StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写. StringIO顾名思义就是在内存中读写str. 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可: >>> from io import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>> f.write(

三十三 StringIO和BytesIO

StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写. StringIO顾名思义就是在内存中读写str. 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可: >>> from io import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>> f.write(

chapter6.2、stringIO 、 bytesIO和路径操作

一.stringIO 和 bytesIO stringIO 类文件对象,在内存中开辟一个文本模式的buffer,可以像文件一样操作 临时缓冲,不写入磁盘,close时关闭消失 tio.getvalue()  读取内容,不受指针影响,其他与文件操作相同 文件系统中没有相应的文件对象,没有fileno() bytesIO from io import BytesIO 与string的操作相同,在内存中开辟一个二进制模式的buffer,可以像文件对象一样操作 内存中的流,字符流和字节流,接口相同 可以