zoukankan      html  css  js  c++  java
  • python 同步IO

    IO在计算机中指Input/Output 由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。
    IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。对于浏览网页来说,浏览器和新浪服务器之间至少需要建立两根水管,才可以既能发数据,又能收数据。

    同步和异步的区别就在于是否等待IO执行的结果

    读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。

    StringIO
    很多时候,数据读写不一定是文件,也可以在内存中读写。
    StringIO顾名思义就是在内存中读写str。
    >>> from io import StringIO
    >>> f = StringIO()
    >>> f.write('hello')
    5
    >>> f.write(' ')
    1
    >>> f.write('world!')
    6
    >>> f.read()
    hello world


    BytesIO
    StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。
    BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:
    >>> from io import BytesIO
    >>> f = BytesIO(b'xe4xb8xadxe6x96x87')
    >>> f.read()
    b'xe4xb8xadxe6x96x87'


    文件os处理
    import os
    print(os.path.abspath('.')) #显示当前绝对路径
    abs = os.path.abspath('.')
    file = os.path.abspath(__file__)
    print(os.path.abspath(__file__)) #显示当前绝对路径加当前文件

    s = os.path.join(abs, 'testdir') #合并
    print(s)
    #os.mkdir(s) #创建目录
    # os.rmdir(s) #删除目录

    split = os.path.split(file) #拆分路径和文件
    print(split)
    print(split[1])

  • 相关阅读:
    BottomNavigationView3个项以上不显示文字的问题
    ViewPager中height=wrap_content无效,ScrollView里边用ListView显示不全解决办法
    Gson解析
    Parcelable Android SDK提供,基于内存,读写高于硬盘
    Serializable序列化 && 坑
    OpenStack中添加Floating IP
    Hadoop
    Redis
    ELK
    OpenStack
  • 原文地址:https://www.cnblogs.com/Liang-jc/p/9274499.html
Copyright © 2011-2022 走看看