django---StringIO和BytesIO

(一)stringIO

很多时候,数据读写不一定是文件,也可以在内存中读写。

StringIO顾名思义就是在内存中读写str。

要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:

>>> from io import StringIO

>>> f = StringIO()

>>> f.write('hello')

5

>>> f.write(' ')

1

>>> f.write('world!')

6

>>> print(f.getvalue())

hello world!

(二)Ø BytesIO

StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。

BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:

>>> from io import BytesIO

>>> f = BytesIO()

>>> f.write('中文'.encode('utf-8'))

6

>>> print(f.getvalue())

b'\xe4\xb8\xad\xe6\x96\x87'

请注意,写入的不是str,而是经过UTF-8编码的bytes。

和StringIO类似,可以用一个bytes初始化BytesIO,然后,像读文件一样读取:

>>> from io import BytesIO

>>> f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')

>>> f.read()

b'\xe4\xb8\xad\xe6\x96\x87'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)stringIO 很多时候,数据读写不一定是文件,也可以在内存中读写。 StringIO顾名思义就是在内存中...
    a荷包蛋阅读 998评论 0 0
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 1,752评论 0 5
  • 那么多年了 守望着威严的大厦 迎送人们进进出出 听见嚣音阵阵 看见落叶纷纷 那么多年了 左边的我双唇紧闭 无法诉说...
    凡野阅读 259评论 0 4
  • 去重庆的时候已经是去年暑假了,这次寒假我把写在了微信公众号里面,后来接触了简书,所以今天周末有空就边回忆边整理了出...
    林琛Live阅读 1,008评论 12 29
  • 新年打电话给麻麻,麻麻突然问:外面的钱是不是很好赚,谁谁买了车又买了房……我想了想说:机会很多,努力用心可以赚到钱...
    梦回驼铃阅读 349评论 0 1