zoukankan      html  css  js  c++  java
  • Python学习week7-StringIO与BytesIO

    1、stringIO

    # io模块中的类,导入方法:from io import StringIO

    # 内存中会开辟一个文本模式的buffer,可以像文件对象一样操作它

    # 当close方法被调用的时候,这个buffer会被释放;

    2、stringIO操作

    # getvalue() 获取全部内容,跟文件指针没关系;

    from io import StringIO
    sio=StringIO()
    print(sio.writable(),sio.readable(),sio.seekable()) # sio对象可写,可度,指针可移动
    sio.write('hello world')
    sio.seek(0)
    print(sio.readline())
    print(sio.getvalue()) # 获取buffer中的内容,与文件指针无关
    sio.close()
    
    '''
    运行结果:
    True True True
    hello world
    hello world
    '''

    3、stringIO的特点

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

    4、BytesIO

    # io模块中的类,导入:from io import BytesIO

    # 内存中开辟一个二进制模式的buffer,可以像文件对象一样操作,当被调用close方法时候,这个buffer会被释放;

    5、BytesIO的操作

    # 操作与stringIO对象类似,但是写入数据的类型必须为bytes类型

    bio=BytesIO()
    
    bio.write(b'ni hao') # 注意写入内容要是bytes类型
    bio.seek(0)
    print(bio.readline())

    6、file-like对象

    # 类文件对象,可以像文件一样操作;socket对象,输入输出对象都是类文件对象;

    from sys import stdout,stderr
    
    f=stdout
    
    print(type(f))
    
    f.write('hello world')
    '''
    运行结果:
    <class '_io.TextIOWrapper'>
    hello world
    '''
  • 相关阅读:
    springboot整合swagger2+跨域问题
    springboot整合日志+多环境配置+热部署
    springboot整合多数据源以及多数据源中的事务处理
    springboot整合jsp
    springboot整合freemarker
    SpringBoot的全局异常处理
    python之多进程记录
    使用python批量造测试数据
    python之global用法
    Jenkins构建从github上克隆时,报Host key verification failed.
  • 原文地址:https://www.cnblogs.com/soulgou123/p/9816402.html
Copyright © 2011-2022 走看看