Python IO编程——StringI

发布时间:2019-07-25 09:19:55编辑:auto阅读(1467)

    1.1   StringIO & BytesIO

    1.1.1   StringIO

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

    StringIO

    >>> fromio import StringIO

    >>> f = StringIO()

    >>> f.write('hello')

    5

    >>> f.write(' ')

    1

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

    6

    >>> f.getvalue()

    'hello world!'

    >>> print(f.getvalue())

    hello world!

    StringIO

    >>> from io import StringIO

    >>> f = StringIO('xiongxiong\nlove\ndaidai')

    >>> while True:

    ...    s = f.readline()           #和读文件的readlines不一样

    ...    if s == '':

    ...        break

    ...    print(s.strip())

    ...

    xiongxiong

    love

    daidai

    1.1.2   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 StringIO

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

    >>> f.read()

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


关键字

上一篇: python3 判断素数

下一篇: Python 列表生成式